{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "sns.set_context(\"poster\")\n",
    "sns.set_style(\"ticks\")\n",
    "\n",
    "from itertools import chain\n",
    "\n",
    "from sklearn.metrics import make_scorer\n",
    "from sklearn.cross_validation import cross_val_score\n",
    "from sklearn.grid_search import RandomizedSearchCV\n",
    "\n",
    "import sklearn_crfsuite\n",
    "from sklearn_crfsuite import scorers\n",
    "from sklearn_crfsuite import metrics\n",
    "from sklearn.cross_validation import cross_val_score\n",
    "from sklearn.grid_search import RandomizedSearchCV\n",
    "\n",
    "import regex as re\n",
    "from collections import namedtuple, defaultdict, Counter, OrderedDict\n",
    "from IPython.display import display\n",
    "from joblib import load, dump, Parallel, delayed\n",
    "\n",
    "import os, string, sys\n",
    "\n",
    "from gensim.models import word2vec"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "class RegexFeatures(object):\n",
    "    PATTERNS = {\n",
    "        \"isInitCapitalWord\": re.compile(r'^[A-Z][a-z]+'),\n",
    "        \"isAllCapitalWord\": re.compile(r'^[A-Z][A-Z]+$'),\n",
    "        \"isAllSmallCase\": re.compile(r'^[a-z]+$'),\n",
    "        \"isWord\": re.compile(r'^[a-zA-Z][a-zA-Z]+$'),\n",
    "        \"isAlphaNumeric\": re.compile(r'^\\p{Alnum}+$'),\n",
    "        \"isSingleCapLetter\": re.compile(r'^[A-Z]$'),\n",
    "        \"containsDashes\": re.compile(r'.*--.*'),\n",
    "        \"containsDash\": re.compile(r'.*\\-.*'),\n",
    "        \"singlePunctuation\": re.compile(r'^\\p{Punct}$'),\n",
    "        \"repeatedPunctuation\": re.compile(r'^[\\.\\,!\\?\"\\':;_\\-]{2,}$'),\n",
    "        \"singleDot\": re.compile(r'[.]'),\n",
    "        \"singleComma\": re.compile(r'[,]'),\n",
    "        \"singleQuote\": re.compile(r'[\\']'),\n",
    "        \"isSpecialCharacter\": re.compile(r'^[#;:\\-/<>\\'\\\"()&]$'),\n",
    "        \"fourDigits\": re.compile(r'^\\d\\d\\d\\d$'),\n",
    "        \"isDigits\": re.compile(r'^\\d+$'),\n",
    "        \"isNumber\": re.compile(r'^((\\p{N}{,2}([,]?\\p{N}{3})+)(\\.\\p{N}+)?)$'),\n",
    "        \"containsDigit\": re.compile(r'.*\\d+.*'),\n",
    "        \"endsWithDot\": re.compile(r'\\p{Alnum}+\\.$'),\n",
    "        \"isURL\": re.compile(r'^http[s]?://'),\n",
    "        \"isMention\": re.compile(r'^(RT)?@[\\p{Alnum}_]+$'),\n",
    "        \"isHashtag\": re.compile(r'^#\\p{Alnum}+$'),\n",
    "        \"isMoney\": re.compile(r'^\\$((\\p{N}{,2}([,]?\\p{N}{3})+)(\\.\\p{N}+)?)$'),\n",
    "    }\n",
    "    def __init__(self):\n",
    "        print \"Initialized RegexFeature\"\n",
    "    @staticmethod\n",
    "    def process(word):\n",
    "        features = dict()\n",
    "        for k, p in RegexFeatures.PATTERNS.iteritems():\n",
    "            if p.match(word):\n",
    "                features[k] = True\n",
    "        return features\n",
    "    \n",
    "    \n",
    "def classification_report_to_df(report):\n",
    "    report_list = []\n",
    "    for i, line in enumerate(report.split(\"\\n\")):\n",
    "        if i == 0:\n",
    "            report_list.append([\"class\", \"precision\", \"recall\", \"f1-score\", \"support\"])\n",
    "        else:\n",
    "            line = line.strip()\n",
    "            if line:\n",
    "                if line.startswith(\"avg\"):\n",
    "                    line = line.replace(\"avg / total\", \"avg/total\")\n",
    "                line = re.split(r'\\s+', line)\n",
    "                report_list.append(tuple(line))\n",
    "    return pd.DataFrame(report_list[1:], columns=report_list[0])\n",
    "\n",
    "\n",
    "DATA_DIR=\"data/data/\"\n",
    "CLEANED_DIR=\"data/cleaned/\"\n",
    "\n",
    "Tag = namedtuple(\"Tag\", [\"token\", \"tag\"])\n",
    "\n",
    "def load_sequences(filename, sep=\"\\t\", notypes=False, test_data=False):\n",
    "    sequences = []\n",
    "    with open(filename) as fp:\n",
    "        seq = []\n",
    "        for line in fp:\n",
    "            line = line.strip()\n",
    "            if line:\n",
    "                line = line.split(sep)\n",
    "                if test_data:\n",
    "                    assert len(line) == 1\n",
    "                    line.append(\"?\")\n",
    "                if notypes:\n",
    "                    line[1] = line[1][0]\n",
    "                seq.append(Tag(*line))\n",
    "            else:\n",
    "                sequences.append(seq)\n",
    "                seq = []\n",
    "        if seq:\n",
    "            sequences.append(seq)\n",
    "    return sequences\n",
    "\n",
    "\n",
    "def load_vocab(filename):\n",
    "    vocab = set()\n",
    "    with open(filename) as fp:\n",
    "        for line in fp:\n",
    "            line = line.strip()\n",
    "            vocab.add(line)\n",
    "    return vocab      \n",
    "\n",
    "    \n",
    "def print_transitions(trans_features):\n",
    "    for (label_from, label_to), weight in trans_features:\n",
    "        print(\"%-6s -> %-7s %0.6f\" % (label_from, label_to, weight))\n",
    "        \n",
    "def print_state_features(state_features):\n",
    "    for (attr, label), weight in state_features:\n",
    "        print(\"%0.6f %-8s %s\" % (weight, label, attr)) \n",
    "        \n",
    "        \n",
    "def plot_cm(y_test, y_pred, labels=[], axis=1):\n",
    "    labels_s = dict((k,i) for i,k in enumerate(labels))\n",
    "    cm = np.zeros((len(labels), len(labels)))\n",
    "    for i,j in zip(sum(y_test, []), sum(y_pred, [])):\n",
    "        i = labels_s[i]\n",
    "        j = labels_s[j]\n",
    "        cm[i,j] += 1\n",
    "    with plt.rc_context(rc={'xtick.labelsize': 12, 'ytick.labelsize': 12,\n",
    "                       'figure.figsize': (16,14)}):\n",
    "        sns.heatmap(cm * 100/ cm.sum(axis=axis, keepdims=True),\n",
    "                    #cmap=sns.cubehelix_palette(n_colors=100, rot=-.4, as_cmap=True),\n",
    "                    cmap=\"Greys\",\n",
    "                    xticklabels=labels,\n",
    "                    yticklabels=labels)\n",
    "        plt.ylabel(\"True labels\")\n",
    "        plt.xlabel(\"Predicted labels\")\n",
    "        title = \"Precision Plot\"\n",
    "        if axis== 0:\n",
    "            title = \"Recall Plot\"\n",
    "        plt.title(title)\n",
    "    print cm.shape\n",
    "    return cm\n",
    "\n",
    "\n",
    "def print_sequences(sequences, predictions, filename, test_data=False, notypes=False):\n",
    "    with open(filename, \"wb+\") as fp:\n",
    "        for seq, pred in zip(sequences, predictions):\n",
    "            for t, p in zip(seq, pred):\n",
    "                token, tag = t\n",
    "                if tag[0] == \"U\":\n",
    "                    tag = \"B%s\" % tag[1:]\n",
    "                if tag[0] == \"E\":\n",
    "                    tag = \"I%s\" % tag[1:]\n",
    "                if p[0] == \"U\":\n",
    "                    p = \"B%s\" % p[1:]\n",
    "                if p[0] == \"E\":\n",
    "                    p = \"I%s\" % p[1:]\n",
    "                if notypes:\n",
    "                    tag = tag[0]\n",
    "                    p = p[0]\n",
    "                if test_data:\n",
    "                    line = \"\\t\".join((token, p))\n",
    "                else:\n",
    "                    line = \"\\t\".join((token, tag, p))\n",
    "                print >> fp, line\n",
    "            print >> fp, \"\"\n",
    "    print \"Done\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "WORD_SPLITTER = re.compile(r'[\\p{Punct}\\s]+')\n",
    "class DictionaryFeatures:\n",
    "    def __init__(self, dictDir):\n",
    "        self.word2dictionaries = {}\n",
    "        self.word2hashtagdictionaries = {}\n",
    "        self.dictionaries = []\n",
    "        i = 0\n",
    "        for d in os.listdir(dictDir):\n",
    "            print >> sys.stderr, \"read dict %s\"%d\n",
    "            self.dictionaries.append(d)\n",
    "            if d == '.svn':\n",
    "                continue\n",
    "            for line in open(dictDir + \"/\" + d):\n",
    "                word = line.rstrip('\\n')\n",
    "                word = word.strip(' ').lower()\n",
    "                word = WORD_SPLITTER.sub(\" \", word)\n",
    "                word_hashtag = \"\".join(WORD_SPLITTER.split(word))\n",
    "                if not self.word2dictionaries.has_key(word):\n",
    "                    self.word2dictionaries[word] = str(i)\n",
    "                else:   \n",
    "                    self.word2dictionaries[word] += \"\\t%s\" % i\n",
    "                if not self.word2hashtagdictionaries.has_key(word_hashtag):\n",
    "                    self.word2hashtagdictionaries[word_hashtag] = str(i)\n",
    "                else:\n",
    "                    self.word2hashtagdictionaries[word_hashtag] += \"\\t%s\" % i\n",
    "            i += 1\n",
    "    \n",
    "    MAX_WINDOW_SIZE=6\n",
    "    def GetDictFeatures(self, words, i):\n",
    "        features = []\n",
    "        phrase = ' '.join(words[i:i+1]).lower().strip(string.punctuation)\n",
    "        phrase = WORD_SPLITTER.sub(\" \", phrase)\n",
    "        if self.word2dictionaries.has_key(phrase):\n",
    "            for j in self.word2dictionaries[phrase].split('\\t'):\n",
    "                features.append('DICT=%s' % self.dictionaries[int(j)])\n",
    "        for window in range(1, self.MAX_WINDOW_SIZE+1):\n",
    "            ## Forward\n",
    "            start=i\n",
    "            end =i + window + 1\n",
    "            if start > -1 and end < len(words) + 1:\n",
    "                phrase = ' '.join(words[start:end]).lower().strip(string.punctuation)\n",
    "                phrase = WORD_SPLITTER.sub(\" \", phrase)\n",
    "                if self.word2dictionaries.has_key(phrase):\n",
    "                    for j in self.word2dictionaries[phrase].split('\\t'):\n",
    "                        features.append('DICTFWD[+%s]=%s' % (window, self.dictionaries[int(j)]))\n",
    "            ## Backward\n",
    "            start = i - window\n",
    "            end =i+1\n",
    "            if start > -1 and end < len(words) + 1:\n",
    "                phrase = ' '.join(words[start:end]).lower().strip(string.punctuation)\n",
    "                phrase = WORD_SPLITTER.sub(\" \", phrase)\n",
    "                if self.word2dictionaries.has_key(phrase):\n",
    "                    for j in self.word2dictionaries[phrase].split('\\t'):\n",
    "                        features.append('DICTBCK[-%s]=%s' % (window, self.dictionaries[int(j)]))\n",
    "            ## Window        \n",
    "            start = i - window\n",
    "            end =i+window+1\n",
    "            if start > -1 and end < len(words) + 1:\n",
    "                phrase = ' '.join(words[start:end]).lower().strip(string.punctuation)\n",
    "                phrase = WORD_SPLITTER.sub(\" \", phrase)\n",
    "                if self.word2dictionaries.has_key(phrase):\n",
    "                    for j in self.word2dictionaries[phrase].split('\\t'):\n",
    "                        features.append('DICTWIN[%s]=%s' % (window, self.dictionaries[int(j)]))\n",
    "                        \n",
    "        \"\"\"\n",
    "        for window in range(1,self.MAX_WINDOW_SIZE):\n",
    "            start=max(i-window+1, 0)\n",
    "            end = start + window\n",
    "            phrase = ' '.join(words[start:end]).lower().strip(string.punctuation)\n",
    "            phrase = WORD_SPLITTER.sub(\" \", phrase)\n",
    "            if self.word2dictionaries.has_key(phrase):\n",
    "                for j in self.word2dictionaries[phrase].split('\\t'):\n",
    "                    features.append('DICT=%s' % self.dictionaries[int(j)])\n",
    "                    if window > 1:\n",
    "                        features.append('DICTWIN[%s]=%s' % (window, self.dictionaries[int(j)]))\n",
    "                        \n",
    "        \"\"\"                \n",
    "        return list(set(features))\n",
    "    \n",
    "    def GetHashtagDictFeatures(self, word):\n",
    "        features = []\n",
    "        if len(word) < 2 or word[0] != \"#\":\n",
    "            return features\n",
    "        word = word[1:].lower().strip(string.punctuation)\n",
    "        if self.word2hashtagdictionaries.has_key(word):\n",
    "            for j in self.word2hashtagdictionaries[word].split('\\t'):\n",
    "                features.append('DICT_HASHTAG=%s' % self.dictionaries[int(j)])\n",
    "        return list(set(features))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "8023\n"
     ]
    }
   ],
   "source": [
    "train_sequences = load_sequences(\"data/cleaned/train.BIEOU.tsv\", sep=\"\\t\", notypes=False)\n",
    "dev_sequences = (load_sequences(\"data/cleaned/dev.BIEOU.tsv\", sep=\"\\t\", notypes=False) \n",
    "                 + load_sequences(\"data/cleaned/dev_2015.BIEOU.tsv\", sep=\"\\t\", notypes=False))\n",
    "test_sequences = load_sequences(\"data/cleaned/test.BIEOU.tsv\", sep=\"\\t\", notypes=False)\n",
    "vocab = load_vocab(\"vocab.no_extras.txt\")\n",
    "print len(vocab)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "all_sentences = [[t[0] for t in seq] for seq in (train_sequences+dev_sequences)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "isHashtag 1002\n",
      "isMoney 8\n",
      "repeatedPunctuation 1388\n",
      "isURL 1159\n",
      "isMention 2243\n",
      "isNumber 393\n"
     ]
    }
   ],
   "source": [
    "other_entities = {\n",
    "    \"isHashtag\": [],\n",
    "    \"isMention\": [],\n",
    "    \"isURL\": [],\n",
    "    \"isMoney\": [],\n",
    "    \"isNumber\": [],\n",
    "    \"repeatedPunctuation\": []\n",
    "}\n",
    "for seq in all_sentences:\n",
    "    for t in seq:\n",
    "        for k in other_entities.keys():\n",
    "            if RegexFeatures.PATTERNS[k].match(t):\n",
    "                other_entities[k].append(t)\n",
    "for k, v in other_entities.iteritems():\n",
    "    print k, len(v)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'isHashtag': '__isHashtag__',\n",
       " 'isMention': '__isMention__',\n",
       " 'isMoney': '__isMoney__',\n",
       " 'isNumber': '__isNumber__',\n",
       " 'isURL': '__isURL__',\n",
       " 'repeatedPunctuation': '__repeatedPunctuation__'}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ENTITY_MAPPINGS={k: \"__%s__\" % k for k in other_entities.keys()}\n",
    "ENTITY_MAPPINGS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def preprocess_token(x, to_lower=False):\n",
    "    for k in ENTITY_MAPPINGS.keys():\n",
    "        if RegexFeatures.PATTERNS[k].match(x):\n",
    "            return ENTITY_MAPPINGS[k]\n",
    "    if to_lower:\n",
    "        x = x.lower()\n",
    "    return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "word2vec_sentences = [[preprocess_token(t[0], to_lower=True) for t in seq] for seq in (train_sequences+dev_sequences)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['__isMention__',\n",
       " '__isMention__',\n",
       " 'they',\n",
       " 'will',\n",
       " 'be',\n",
       " 'all',\n",
       " 'done',\n",
       " 'by',\n",
       " 'sunday',\n",
       " 'trust',\n",
       " 'me',\n",
       " '*wink*']"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "word2vec_sentences[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'__isMention__'"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "preprocess_token(\"@guild_gamer\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "model = word2vec.Word2Vec(word2vec_sentences, size=50, window=10, sg=1, hs=0, min_count=1, negative=10, workers=-1, iter=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('woohoo', 1.1921510696411133), ('sense', 1.1719331741333008), ('stuf', 1.1321699619293213), ('magshipping', 1.1089348793029785), ('daughter', 1.0918970108032227), ('workshops', 1.0673930644989014), ('assuming', 1.0667248964309692), ('leo', 1.06049644947052), ('club', 1.045501470565796), ('theyll', 1.04293954372406)]\n",
      "[('belgium', 0.7511849403381348), ('witty', 0.7426531314849854), ('casse', 0.7351176738739014), ('changed', 0.7312736511230469), ('amendment', 0.7266189455986023), ('extras', 0.7251930236816406), ('purse', 0.7246640920639038), ('niiiiiiiiiight', 0.7233899831771851), ('coolin', 0.7197006940841675), ('unreal', 0.7180455923080444)]\n"
     ]
    }
   ],
   "source": [
    "print model.most_similar_cosmul(positive=[\"guy\", \"women\"], negative=[\"man\"])\n",
    "print model.most_similar_cosmul(positive=[\"raining\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('sense', 0.504571795463562), ('leo', 0.4583566188812256), ('workshops', 0.4541390538215637), ('woohoo', 0.45328351855278015), ('club', 0.4470578134059906), ('astonishing', 0.4353468716144562), ('gods', 0.42191898822784424), ('stuf', 0.41473114490509033), ('rsw', 0.413332462310791), ('ever', 0.40247923135757446)]\n",
      "[('belgium', 0.5023713707923889), ('witty', 0.4853076934814453), ('casse', 0.4702368378639221), ('changed', 0.46254879236221313), ('amendment', 0.4532393217086792), ('extras', 0.45038753747940063), ('purse', 0.449329674243927), ('niiiiiiiiiight', 0.44678136706352234), ('coolin', 0.43940281867980957), ('unreal', 0.4360924959182739)]\n"
     ]
    }
   ],
   "source": [
    "print model.most_similar(positive=[\"guy\", \"women\"], negative=[\"man\"])\n",
    "print model.most_similar(positive=[\"raining\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['raining', 'foul', 'dongwoon/hq', 'woods', 'hanging', 'snowing', 'rimutakas', 'otra', 'opener', 'lord', 'regional', 'kalaingar', 'yellow', 'bringing', 'four', 'slooooooots', 'wednesday', 'bugatti', 'greaaaat', 'solid', 'humeur', 'south-west', 'glassy', 'nigh', 'tired', 'katara', 'complainers', '27-', 'kreeg', 'second', 'inanimate', 'errors', 'inglewood', 'boogie', 'contributed', 'roadhouse', 'fossil', 'cars', 'increasing', 'jessum', 'hero', 'dahl', 'legendary/novelties', 'suga', 'here', 'onga', 'reported', 'china', 'kids', 'elaborate', 'reports', 'chewables', \"i'd\", 'military', \"i'm\", 'golden', 'replace', 'brought', 'motoland', 'txt', 'unit', 'dna', 'spoke', '42', 'overshadow', 'explorers', 'dnt', 'gabourey', 'music', 'telegraph', 'strike', 'musik', 'until', 'playboy', 'holy', 'relax', 'successful', 'brings', 'miren', 'yahoo', 'hurt', '99', 'glass', 'thinkpad', '90', '93', 'hold', '94', 'hola', 'hayfever/headcold/sinusinfection', 'listenin', 'wippenberg', 'blade', 'casitas', 'temperatures', 'homeworkkk', 'example', 'coolum', 'household', 'wann']\n"
     ]
    }
   ],
   "source": [
    "print model.vocab.keys()[:100]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10092"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(model.vocab)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__isMention__ 2243\n",
      ". 2118\n",
      ", 1441\n",
      "the 1431\n",
      "__repeatedPunctuation__ 1388\n",
      ": 1354\n",
      "i 1216\n",
      "to 1189\n",
      "__isURL__ 1159\n",
      "a 1015\n"
     ]
    }
   ],
   "source": [
    "for k,v in sorted(model.vocab.iteritems(), key=lambda x: x[1].count, reverse=True)[:10]:\n",
    "    print k, v.count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.vocab.values()[0].count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('belgium', 0.5023713707923889),\n",
       " ('witty', 0.4853076934814453),\n",
       " ('casse', 0.4702368378639221),\n",
       " ('changed', 0.46254879236221313),\n",
       " ('amendment', 0.4532393217086792),\n",
       " ('extras', 0.45038753747940063),\n",
       " ('purse', 0.449329674243927),\n",
       " ('niiiiiiiiiight', 0.44678136706352234),\n",
       " ('coolin', 0.43940281867980957),\n",
       " ('unreal', 0.4360924959182739)]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.similar_by_word(\"raining\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.00251598, -0.00186065, -0.00985688, -0.00552237,  0.00261794,\n",
       "       -0.00577983,  0.00162547, -0.00306061,  0.00332804, -0.00720967,\n",
       "        0.00692851,  0.00251646, -0.00720343,  0.00313723,  0.00691626,\n",
       "       -0.00916594,  0.00503378,  0.00781422,  0.00885693, -0.00727555,\n",
       "        0.00305824,  0.00492674, -0.00703523, -0.00974156, -0.00822543,\n",
       "        0.00263465, -0.00116582, -0.00107611,  0.00336891,  0.00732394,\n",
       "       -0.00336881,  0.00855461,  0.00243005, -0.00205823,  0.00868445,\n",
       "        0.00560661, -0.00610446, -0.00044921, -0.0018357 , -0.0064352 ,\n",
       "       -0.00039243, -0.00748058, -0.00996461,  0.00338018, -0.00744658,\n",
       "       -0.00885487,  0.00690349, -0.00815806,  0.00835999,  0.00440392], dtype=float32)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model[\"raining\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Glove mappings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "GLOVE_TWEET_MAPPINGS={\n",
    "    \"<user>\": \"isMention\",\n",
    "    \"<hashtag>\": \"isHashtag\",\n",
    "    \"<number>\": \"isDigit\",\n",
    "    \"<url>\": \"isURL\",\n",
    "    \"<allcaps>\": \"isAllCapitalWord\",\n",
    "}\n",
    "\n",
    "def process_glovevectors(filename):\n",
    "    words, dim = 0, 0\n",
    "    with open(filename) as fp:\n",
    "        for line in fp:\n",
    "            #line = line.strip().split(\" \")\n",
    "            words+= 1\n",
    "    line = line.strip().split(\" \")\n",
    "    dim = len(line) - 1\n",
    "    print \"Words: {}, dim: {}\".format(words, dim)\n",
    "    with open(filename) as fp, open(\"{}.processed.txt\".format(filename), \"wb+\") as fp1:\n",
    "        print >> fp1, words, dim\n",
    "        for line in fp:\n",
    "            line = line.strip().split(\" \", 1)\n",
    "            line[0] = dict.get(GLOVE_TWEET_MAPPINGS, line[0], line[0])\n",
    "            print >> fp1, line[0], line[1]\n",
    "    print \"Done\"\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Uncomment this cell to re-process glove vectors\n",
    "\n",
    "```\n",
    "process_glovevectors(\"/home/entity/Downloads/GloVe/glove.twitter.27B.200d.txt\")\n",
    "\"\"\"\n",
    "Words: 1193514, dim: 50\n",
    "Done\n",
    "\"\"\"\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model_glove = word2vec.Word2Vec(word2vec_sentences, size=200, window=10, sg=1, hs=0, min_count=1, negative=10, workers=-1, iter=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "model_glove.intersect_word2vec_format(\"/home/entity/Downloads/GloVe/glove.twitter.27B.200d.txt.processed.txt\", binary=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#for i in xrange(5):\n",
    "#   model_glove.train(word2vec_sentences, total_examples=len(word2vec_sentences))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('queen', 0.8635461926460266), ('prince', 0.8147591352462769), ('kings', 0.8053630590438843), ('african', 0.8034176826477051), ('collection', 0.798965334892273), ('princess', 0.7982502579689026), ('national', 0.7926250696182251), ('queens', 0.7904216647148132), ('our', 0.7895063757896423), ('olympic', 0.7883802652359009)]\n",
      "[('snowing', 0.9088315367698669), ('rain', 0.8637869358062744), ('pouring', 0.831719160079956), ('rains', 0.828848659992218), ('rainy', 0.8258071541786194), ('cold', 0.8168103098869324), ('snow', 0.8152739405632019), ('outside', 0.8126229643821716), ('weather', 0.8116412162780762), ('degrees', 0.7995356917381287)]\n"
     ]
    }
   ],
   "source": [
    "print model_glove.most_similar_cosmul(positive=[\"king\", \"women\"], negative=[\"man\"])\n",
    "print model_glove.most_similar_cosmul(positive=[\"raining\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('queen', 0.5662634968757629), ('prince', 0.5070953965187073), ('kings', 0.48121270537376404), ('african', 0.4752596914768219), ('ladies', 0.4659445583820343), ('princess', 0.4627862870693207), ('collection', 0.4574243724346161), ('our', 0.4551507234573364), ('black', 0.4548451900482178), ('national', 0.4532495439052582)]\n",
      "[('snowing', 0.8176649212837219), ('rain', 0.7275756001472473), ('pouring', 0.6634398698806763), ('rains', 0.6576988101005554), ('rainy', 0.6516158580780029), ('cold', 0.6336221098899841), ('snow', 0.630549430847168), ('outside', 0.6252474188804626), ('weather', 0.6232839822769165), ('degrees', 0.5990728735923767)]\n"
     ]
    }
   ],
   "source": [
    "print model_glove.most_similar(positive=[\"king\", \"women\"], negative=[\"man\"])\n",
    "print model_glove.most_similar(positive=[\"raining\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Label correlations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "label_co_occurences = [[t[1][2:] for t in seq if t[1] != \"O\"] for seq in (train_sequences)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'product': 5, 'facility': 3, 'movie': 7, 'company': 4, 'sportsteam': 8, 'musicartist': 6, 'person': 0, 'other': 1, 'geo-loc': 2, 'tvshow': 9}\n",
      "Counter({'person': 664, 'other': 545, 'geo-loc': 325, 'facility': 209, 'company': 207, 'product': 177, 'musicartist': 116, 'movie': 80, 'sportsteam': 74, 'tvshow': 65})\n"
     ]
    }
   ],
   "source": [
    "cat_types = Counter(t for seq in label_co_occurences for t in seq)\n",
    "cat_ids = {k[0]: i for i, k in enumerate(cat_types.most_common())}\n",
    "cat_names = [k[0] for k in cat_types.most_common()]\n",
    "print cat_ids\n",
    "print cat_types"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Label specific vectors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_non_label_words(t):\n",
    "    if t[1] != \"O\":\n",
    "        return \"LABEL-{}\".format(t[1][1:])\n",
    "    return preprocess_token(t[0], to_lower=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "label_specific_sentences = [[get_non_label_words(t) for t in seq] for seq in (train_sequences)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model_label_specific = word2vec.Word2Vec(label_specific_sentences,\n",
    "                                         size=200, window=10, sg=1, hs=0, min_count=1, negative=10, workers=-1, iter=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('whom', 0.26011449098587036),\n",
       " ('compared', 0.2354053258895874),\n",
       " ('generating', 0.22560346126556396),\n",
       " ('killed', 0.22056034207344055),\n",
       " ('boi', 0.21400517225265503),\n",
       " ('theater', 0.21115969121456146),\n",
       " ('la', 0.21090877056121826),\n",
       " ('ld', 0.20020538568496704),\n",
       " ('fights', 0.20011185109615326),\n",
       " ('where', 0.19708320498466492)]"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_label_specific.most_similar(\"LABEL-product\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import copy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "model_label_specific.intersect_word2vec_format(\"/home/entity/Downloads/GloVe/glove.twitter.27B.200d.txt.processed.txt\",\n",
    "                                               binary=False)\n",
    "for i in xrange(5):\n",
    "    model_label_specific.train(label_specific_sentences, total_examples=len(label_specific_sentences))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('soup', 0.26856234669685364),\n",
       " ('dishes', 0.26497727632522583),\n",
       " ('workz', 0.2624945640563965),\n",
       " ('flowing', 0.25266361236572266),\n",
       " ('persian', 0.2509954571723938),\n",
       " ('mixing', 0.24889320135116577),\n",
       " ('oily', 0.23985573649406433),\n",
       " ('dry', 0.2286411076784134),\n",
       " ('english', 0.22728340327739716),\n",
       " ('puking', 0.22508037090301514)]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_label_specific.most_similar(\"LABEL-sportsteam\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cluster word embeddings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.cluster import AgglomerativeClustering"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "wv_clusters = AgglomerativeClustering(n_clusters=50, affinity=\"cosine\", linkage=\"average\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "AgglomerativeClustering(affinity='cosine', compute_full_tree='auto',\n",
       "            connectivity=None, linkage='average',\n",
       "            memory=Memory(cachedir=None), n_clusters=50, n_components=None,\n",
       "            pooling_func=<function mean at 0x7f8f3c207cf8>)"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wv_clusters.fit(model_label_specific.syn0norm)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "wv_cluster_ids = wv_clusters.fit_predict(model_label_specific.syn0norm)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "wv_cluster_mappings = {k: wv_cluster_ids[v.index] for k,v in model_label_specific.vocab.iteritems()}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('*sighs*', 4),\n",
       " ('co-ass', 4),\n",
       " ('eyes*wat', 4),\n",
       " ('25%', 4),\n",
       " ('radio.woai.com', 4),\n",
       " ('104&amp;#xb0', 4),\n",
       " (\"g'mar\", 4),\n",
       " ('i`ll', 4),\n",
       " ('(shit', 4),\n",
       " ('p-i-m-p', 4)]"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "filter(lambda x: x[1] == 4, wv_cluster_mappings.iteritems())[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "del model_label_specific"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Word clusters - Brown and Clark"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def read_brown_clusters(filename):\n",
    "    cluster_vocab={}\n",
    "    with open(filename) as fp:\n",
    "        for line in fp:\n",
    "            cid, word, counts = line.strip().split(\"\\t\")\n",
    "            cluster_vocab[word] = cid\n",
    "    return cluster_vocab       \n",
    "        \n",
    "    \n",
    "def read_clark_clusters(filename):\n",
    "    cluster_vocab={}\n",
    "    with open(filename) as fp:\n",
    "        for line in fp:\n",
    "            try:\n",
    "                word, cid, prob = line.strip().split(\" \")\n",
    "                cluster_vocab[word] = (cid, float(prob))\n",
    "            except:\n",
    "                print \"skipping line: \", line\n",
    "    return cluster_vocab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "cluster_vocab = read_brown_clusters(\"/home/entity/Downloads/GloVe/50mpaths2\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Run once for creating data for brown clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "@SammieLynnsMom @tg10781 they will be all done by Sunday trust me *wink*\r\n",
      "Made it back home to GA . It sucks not to be at Disney world , but its good to be home . Time to start planning the next Disney World trip .\r\n",
      "' Breaking Dawn ' Returns to Vancouver on January 11th http://bit.ly/dbDMs8\r\n",
      "@ls_n perhaps , but folks may find something in the gallery that is helpful in their day-to-day work as well . Even just to use it .\r\n",
      "@Carr0t aye been tonight - excellent\r\n",
      "RT @LilTwist : RT this if you want me to go back live on Ustream later tonight\r\n",
      "@Hollly_ 16 b 17 in feb\r\n",
      "RT @obsidianchao : OF FUCKING COURSE . I GET HOME AND MY BROTHER IS ON THE MOTHER FUCKING XBOX . Worst fucking day ever .\r\n",
      "I haven't driven to bc in years , and I am just stunned by how beautiful the drive is .\r\n",
      "@daraobriain hmmm . Cant wait . Comin on Thursday . First time to the Apollo .\r\n"
     ]
    }
   ],
   "source": [
    "with open(\"all_sequences.txt\", \"wb+\") as fp:\n",
    "    for seq in all_sentences:\n",
    "        print >> fp, \" \".join(seq)\n",
    "! head all_sequences.txt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Logging to word_clusters/log\r\n"
     ]
    }
   ],
   "source": [
    "! /home/entity/Downloads/brown-cluster/wcluster --text all_sequences.txt --c 100 --output_dir word_clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__isMention__ __isMention__ they will be all done by sunday trust me *wink*\r\n",
      "made it back home to ga . it sucks not to be at disney world , but its good to be home . time to start planning the next disney world trip .\r\n",
      "' breaking dawn ' returns to vancouver on january 11th __isURL__\r\n",
      "__isMention__ perhaps , but folks may find something in the gallery that is helpful in their day-to-day work as well . even just to use it .\r\n",
      "__isMention__ aye been tonight - excellent\r\n",
      "rt __isMention__ : rt this if you want me to go back live on ustream later tonight\r\n",
      "__isMention__ 16 b 17 in feb\r\n",
      "rt __isMention__ : of fucking course . i get home and my brother is on the mother fucking xbox . worst fucking day ever .\r\n",
      "i haven't driven to bc in years , and i am just stunned by how beautiful the drive is .\r\n",
      "__isMention__ hmmm . cant wait . comin on thursday . first time to the apollo .\r\n"
     ]
    }
   ],
   "source": [
    "with open(\"word2vec_sentences.txt\", \"wb+\") as fp:\n",
    "    for seq in word2vec_sentences:\n",
    "        print >> fp, \" \".join(seq)\n",
    "! head word2vec_sentences.txt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Logging to word_clusters_wv/log\r\n"
     ]
    }
   ],
   "source": [
    "! /home/entity/Downloads/brown-cluster/wcluster --text word2vec_sentences.txt --c 100 --output_dir word_clusters_wv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load trained brown clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "cluster_vocab_data = read_brown_clusters(\"word_clusters/paths\")\n",
    "cluster_vocab_wv = read_brown_clusters(\"word_clusters_wv/paths\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Run once for generating clark clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "@SammieLynnsMom\r\n",
      "@tg10781\r\n",
      "they\r\n",
      "will\r\n",
      "be\r\n",
      "all\r\n",
      "done\r\n",
      "by\r\n",
      "Sunday\r\n",
      "trust\r\n"
     ]
    }
   ],
   "source": [
    "with open(\"all_sequences.clark.txt\", \"wb+\") as fp:\n",
    "    for seq in all_sentences:\n",
    "        print >> fp, \"\\n\".join(seq)\n",
    "        print >> fp, \"\\n\"\n",
    "! head all_sequences.clark.txt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "! /home/entity/Downloads/clark_pos_induction/src/bin/cluster_neyessenmorph -s 10 -m 1 -i 10 -x all_sequences.clark.txt all_sequences.clark.txt 32 > all_sequences.clark_clusters.32.txt 2> clark.err"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load clark clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "skipping line:   17 0.955895\n",
      "\n"
     ]
    }
   ],
   "source": [
    "cluster_vocab_clark = read_clark_clusters(\"all_sequences.clark_clusters.32.txt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Read dictionary features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "read dict time.holiday\n",
      "read dict location.country\n",
      "read dict award.award\n",
      "read dict location\n",
      "read dict movies.txt.results.txt\n",
      "read dict lastname.5000\n",
      "read dict sports.sports_team\n",
      "read dict tv.tv_program\n",
      "read dict book.newspaper\n",
      "read dict internet.website\n",
      "read dict base.events.festival_series\n",
      "read dict products.txt.results.txt\n",
      "read dict persons.txt.results.txt\n",
      "read dict tv.tv_network\n",
      "read dict cvg.computer_videogame\n",
      "read dict business.consumer_product\n",
      "read dict people.family_name\n",
      "read dict tvshows.txt.results.txt\n",
      "read dict government.government_agency\n",
      "read dict venues\n",
      "read dict broadcast.tv_channel\n",
      "read dict music_artists.txt.results.txt\n",
      "read dict automotive.make\n",
      "read dict product\n",
      "read dict business.consumer_company\n",
      "read dict music_artists.txt\n",
      "read dict venture_capital.venture_funded_company\n",
      "read dict cvg.cvg_developer\n",
      "read dict architecture.museum\n",
      "read dict lower.5000\n",
      "read dict automotive.model\n",
      "read dict companynames.txt.results.txt\n",
      "read dict musicartist_namevariants.unique.txt\n",
      "read dict time.recurring_event\n",
      "read dict cities.txt.results.txt\n",
      "read dict sports.sports_league\n",
      "read dict firstname.5k\n",
      "read dict business.brand\n",
      "read dict buildings.txt.results.txt\n",
      "read dict musicartist_names.unique.txt\n",
      "read dict english.stop\n",
      "read dict all_geonames.txt\n",
      "read dict education.university\n",
      "read dict cvg.cvg_platform\n",
      "read dict sportsteams.txt.results.txt\n",
      "read dict cap.1000\n",
      "read dict business.sponsor\n",
      "read dict transportation.road\n"
     ]
    }
   ],
   "source": [
    "dict_features = DictionaryFeatures(\"./data/cleaned/custom_lexicons/\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Predict tweet type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def tweet_features(sent, word2vec_model=None, cluster_vocabs=None, WORD_IDX=0):\n",
    "    features = {}\n",
    "    sent_length = len(sent) * 1.\n",
    "    for widx, word in enumerate(sent):\n",
    "        word = word[WORD_IDX]\n",
    "        lookup_key = preprocess_token(word, to_lower=True)\n",
    "        if word2vec_model and lookup_key in word2vec_model:\n",
    "            for i,v in enumerate(word2vec_model[lookup_key]):\n",
    "                features[\"_GLOBAL_WORDVEC_%s\" % i] = dict.get(features, \"_GLOBAL_WORDVEC_%s\" % i, 0) + v\n",
    "        if cluster_vocabs and lookup_key in cluster_vocabs:\n",
    "            v = dict.get(cluster_vocabs, lookup_key)\n",
    "            features[\"_GLOBAL_CLUSTER_=%s\" % v] = dict.get(features, \"_GLOBAL_CLUSTER_=%s\" % v, 0) + 1\n",
    "        if dict_features:\n",
    "            d_features = dict_features.GetDictFeatures([k[WORD_IDX] for k in sent], widx)\n",
    "            for k in d_features:\n",
    "                features[k] = dict.get(features, k, 0) + 1\n",
    "            d_hashtag_features = dict_features.GetHashtagDictFeatures(word)\n",
    "            for k in d_hashtag_features:\n",
    "                features[k] = dict.get(features, k, 0) + 1\n",
    "    #features = {k: v / sent_length for k,v in features.iteritems()}\n",
    "    return features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.feature_extraction import DictVectorizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "tweet_train_data = [tweet_features(sent, word2vec_model=model_glove, cluster_vocabs=cluster_vocab)\n",
    "                   for sent in train_sequences]\n",
    "tweet_test_data = [tweet_features(sent, word2vec_model=model_glove, cluster_vocabs=cluster_vocab)\n",
    "                   for sent in dev_sequences]\n",
    "tweet_test_final_data = [tweet_features(sent, word2vec_model=model_glove, cluster_vocabs=cluster_vocab)\n",
    "                   for sent in test_sequences]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "feature2matrix = DictVectorizer()\n",
    "tweet_X_train = feature2matrix.fit_transform(tweet_train_data)\n",
    "tweet_X_test = feature2matrix.transform(tweet_test_data)\n",
    "tweet_X_test_final = feature2matrix.transform(tweet_test_final_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.svm import LinearSVC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def is_tweet_type(sent, cat_type):\n",
    "    for t in sent:\n",
    "        if t.tag != \"O\":\n",
    "            if t.tag[2:] == cat_type:\n",
    "                return 1\n",
    "    return 0\n",
    "            "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing: person\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.94      0.93      0.93      1231\n",
      "          1       0.56      0.58      0.57       189\n",
      "\n",
      "avg / total       0.89      0.88      0.89      1420\n",
      "\n",
      "Processing: other\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.91      0.90      0.90      1255\n",
      "          1       0.29      0.32      0.30       165\n",
      "\n",
      "avg / total       0.84      0.83      0.83      1420\n",
      "\n",
      "Processing: geo-loc\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.96      0.94      0.95      1297\n",
      "          1       0.48      0.61      0.54       123\n",
      "\n",
      "avg / total       0.92      0.91      0.91      1420\n",
      "\n",
      "Processing: facility\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.98      0.96      0.97      1375\n",
      "          1       0.21      0.31      0.25        45\n",
      "\n",
      "avg / total       0.95      0.94      0.95      1420\n",
      "\n",
      "Processing: company\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.97      0.95      0.96      1360\n",
      "          1       0.23      0.33      0.27        60\n",
      "\n",
      "avg / total       0.94      0.92      0.93      1420\n",
      "\n",
      "Processing: product\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.98      0.96      0.97      1377\n",
      "          1       0.22      0.37      0.28        43\n",
      "\n",
      "avg / total       0.96      0.94      0.95      1420\n",
      "\n",
      "Processing: musicartist\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.98      0.96      0.97      1383\n",
      "          1       0.10      0.19      0.13        37\n",
      "\n",
      "avg / total       0.96      0.94      0.95      1420\n",
      "\n",
      "Processing: movie\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.99      0.98      0.99      1406\n",
      "          1       0.17      0.36      0.23        14\n",
      "\n",
      "avg / total       0.99      0.98      0.98      1420\n",
      "\n",
      "Processing: sportsteam\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.97      0.99      0.98      1360\n",
      "          1       0.66      0.42      0.51        60\n",
      "\n",
      "avg / total       0.96      0.97      0.96      1420\n",
      "\n",
      "Processing: tvshow\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       1.00      0.99      0.99      1412\n",
      "          1       0.11      0.25      0.15         8\n",
      "\n",
      "avg / total       0.99      0.98      0.99      1420\n",
      "\n"
     ]
    }
   ],
   "source": [
    "models = {}\n",
    "for cat_type in cat_names:\n",
    "    print \"Processing: %s\" % cat_type\n",
    "    y_train = np.array([is_tweet_type(sent, cat_type) for sent in train_sequences])\n",
    "    y_test = np.array([is_tweet_type(sent, cat_type) for sent in dev_sequences])\n",
    "    model = LogisticRegression(solver=\"lbfgs\", multi_class=\"multinomial\")\n",
    "    model.fit(tweet_X_train, y_train)\n",
    "    y_pred = model.predict(tweet_X_test)\n",
    "    print classification_report(y_test, y_pred)\n",
    "    models[cat_type] = model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  3.42877844e-02,   1.41197353e-03,   1.61901138e-01,\n",
       "         9.96124170e-01,   1.80556124e-01,   3.81964705e-06,\n",
       "         1.16778507e-03,   2.03262332e-06,   2.05595303e-02,\n",
       "         4.32040855e-05])"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.predict_proba(tweet_X_test)[:10, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0])"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.predict(tweet_X_test)[:10]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def get_word_form(word, vocab=None, lower=False):\n",
    "    if lower:\n",
    "        word = word.lower()\n",
    "    if vocab:\n",
    "        vocab_search_word = word.lower() \n",
    "        word = \"OOV\" if vocab_search_word not in vocab else word\n",
    "    return word\n",
    "\n",
    "def get_clust_tag_value(lookup_key, cluster_vocab, cluster_tag,\n",
    "                       clust_values_tuple=False):\n",
    "    v = cluster_vocab[lookup_key]\n",
    "    if clust_values_tuple:\n",
    "        cluster_tag = \"{}={}\".format(cluster_tag, v[0])\n",
    "        v = v[1]\n",
    "    return (cluster_tag, v)    \n",
    "\n",
    "\n",
    "def gen_cluster_features(sent, widx, cid, lookup_key, cluster_vocab, WORD_IDX=0, \n",
    "                         cluster_tag=\"_CLUST_\", dropout=0, clust_values_tuple=False,\n",
    "                        interactions=False):\n",
    "    features = {}\n",
    "    if lookup_key in cluster_vocab:\n",
    "        center_word_f = get_clust_tag_value(lookup_key, cluster_vocab,\n",
    "                                            cluster_tag, clust_values_tuple=clust_values_tuple)\n",
    "        features.setdefault(*center_word_f)\n",
    "        ## Previous word\n",
    "        if widx > 0:\n",
    "            lookup_key_prev = preprocess_token(sent[widx-1][WORD_IDX], to_lower=True)\n",
    "            if lookup_key_prev in cluster_vocab:\n",
    "                prev_word_f = get_clust_tag_value(lookup_key_prev, cluster_vocab, \n",
    "                                                 \"{}[-1]\".format(cluster_tag),\n",
    "                                                  clust_values_tuple=clust_values_tuple)\n",
    "                features.setdefault(*prev_word_f)\n",
    "                if interactions:\n",
    "                    if np.random.rand() > dropout:\n",
    "                        if clust_values_tuple:\n",
    "                            features[\"{}|{}\".format(\n",
    "                                    center_word_f[0], prev_word_f[0]\n",
    "                                )] = (center_word_f[1]*prev_word_f[1])\n",
    "                        else:\n",
    "                            features[\"{}={}|{}={}\".format(*(center_word_f+prev_word_f))] = True\n",
    "        ## Next word\n",
    "        if widx < len(sent) -1:\n",
    "            lookup_key_next = preprocess_token(sent[widx+1][WORD_IDX], to_lower=True)\n",
    "            if lookup_key_next in cluster_vocab:\n",
    "                next_word_f = get_clust_tag_value(lookup_key_next, cluster_vocab, \n",
    "                                                 \"{}[+1]\".format(cluster_tag),\n",
    "                                                 clust_values_tuple=clust_values_tuple)\n",
    "                features.setdefault(*next_word_f)\n",
    "                if interactions:\n",
    "                    if np.random.rand() > dropout:\n",
    "                        if clust_values_tuple:\n",
    "                            features[\"{}|{}\".format(\n",
    "                                    next_word_f[0], center_word_f[0]\n",
    "                                )] = (next_word_f[1]*center_word_f[1])\n",
    "                        else:\n",
    "                            features[\"{}={}|{}={}\".format(*(next_word_f+center_word_f))] = True\n",
    "        \"\"\"\n",
    "        for k,v in features.iteritems():\n",
    "            if isinstance(v, float) or isinstance(v, bool) or isinstance(v, str) or isinstance(v,int):\n",
    "                continue\n",
    "            else:\n",
    "                print features\n",
    "                print k,v\n",
    "                raise\n",
    "        \"\"\"\n",
    "        return features\n",
    "    \n",
    "\n",
    "def word2features(sent, widx, WORD_IDX=0,\n",
    "                  extra_features={},\n",
    "                  vocab=None, dict_features=None,\n",
    "                  vocab_presence_only=False,\n",
    "                  dict_interactions=False,\n",
    "                  interactions=False,\n",
    "                  lowercase=True,\n",
    "                  window=0,\n",
    "                 verbose=False, dropout=0.5,\n",
    "                 word2vec_model=None,\n",
    "                 cluster_vocabs=None):\n",
    "    word = sent[widx][WORD_IDX]\n",
    "    features = {\n",
    "        'bias': True,\n",
    "        #'word_normed': word.lower(),\n",
    "        #'suffix_3': word[-3:].lower(),\n",
    "        #'suffix_2': word[-2:].lower(),\n",
    "        #'prefix_3': word[-3:].lower(),\n",
    "        #'prefix_2': word[-2:].lower(),\n",
    "    }\n",
    "    ## Word2Vec or Brown Cluster features\n",
    "    if word2vec_model or cluster_vocabs:\n",
    "        lookup_key = preprocess_token(word, to_lower=True)\n",
    "        ## Word2Vec features\n",
    "        if word2vec_model and lookup_key in word2vec_model:\n",
    "            word2vec_features = {\"_WORDVEC_%s\" % i: v for i,v in enumerate(word2vec_model[lookup_key])}\n",
    "            features.update(word2vec_features)\n",
    "        ## Brown cluster features\n",
    "        if cluster_vocabs:\n",
    "            if not isinstance(cluster_vocabs, list):\n",
    "                cluster_vocabs = [cluster_vocabs]\n",
    "            for cid, cluster_vocab in enumerate(cluster_vocabs):\n",
    "                cluster_type=\"BROWN\"\n",
    "                if cluster_vocab:\n",
    "                    clust_values_tuple=False\n",
    "                    if isinstance(cluster_vocab.itervalues().next(), tuple):\n",
    "                        clust_values_tuple = True\n",
    "                        cluster_type=\"CLARK\"\n",
    "                    cluster_tag = \"__{}_CLUSTER_{}__\".format(cluster_type, cid)\n",
    "                    clust_features = gen_cluster_features(\n",
    "                        sent, widx, cid, lookup_key, cluster_vocab, WORD_IDX=WORD_IDX,\n",
    "                        cluster_tag=cluster_tag, dropout=dropout, \n",
    "                        clust_values_tuple=clust_values_tuple, interactions=interactions)\n",
    "                    if clust_features:\n",
    "                        features.update(clust_features)\n",
    "\n",
    "    ## Vocab Feature\n",
    "    if vocab:\n",
    "        if vocab_presence_only:\n",
    "            features[\"word_normed\"] = word.lower() in vocab\n",
    "        else:\n",
    "            features[\"word_normed\"] = word.lower() if word.lower() in vocab else \"OOV\"\n",
    "    ## Regex Feature\n",
    "    regex_features = RegexFeatures.process(word)\n",
    "    features.update(regex_features)\n",
    "    if interactions:\n",
    "        if widx > 0:\n",
    "            regex_features_prev = RegexFeatures.process(sent[widx-1][WORD_IDX])\n",
    "            features.update((\"%s[-1]\" % k, v) for k,v in regex_features_prev.iteritems())\n",
    "            features.update({\n",
    "                    (\"%s[-1]|%s\" % (k1,k), True)\n",
    "                    for k, v in regex_features.iteritems()\n",
    "                    for k1, v1 in regex_features_prev.iteritems()\n",
    "                    if v & v1 & (np.random.rand() > dropout)\n",
    "                })\n",
    "        if widx < len(sent)-1:\n",
    "            regex_features_next = RegexFeatures.process(sent[widx+1][WORD_IDX])\n",
    "            features.update((\"%s[+1]\" % k, v) for k,v in regex_features_next.iteritems())\n",
    "            features.update({\n",
    "                    (\"%s|%s[+1]\" % (k,k1), True)\n",
    "                    for k, v in regex_features.iteritems()\n",
    "                    for k1, v1 in regex_features_next.iteritems()\n",
    "                    if v & v1 & (np.random.rand() > dropout)\n",
    "                })\n",
    "    ## Gazetteer Feature\n",
    "    if dict_features:\n",
    "        d_features = dict_features.GetDictFeatures([k[WORD_IDX] for k in sent], widx)\n",
    "        features.update({k: True for k in d_features})\n",
    "        d_features = sorted(d_features)\n",
    "        features.update({\"%s|%s\" % (k,k1): True for i, k in enumerate(d_features)\n",
    "                         for k1 in d_features[i+1:]\n",
    "                         if np.random.rand() > dropout})\n",
    "        d_hashtag_features = dict_features.GetHashtagDictFeatures(word)\n",
    "        features.update({k: True for k in d_hashtag_features})\n",
    "        d_hashtag_features = sorted(d_hashtag_features)\n",
    "        features.update({\"%s|%s\" % (k,k1): True for i, k in enumerate(d_hashtag_features)\n",
    "                         for k1 in d_hashtag_features[i+1:]\n",
    "                         if np.random.rand() > dropout})\n",
    "    ## Extra features\n",
    "    features.update(extra_features)\n",
    "    ## Start Feature\n",
    "    if widx == 0:\n",
    "        features['__BOS__'] = True\n",
    "    ## End Feature\n",
    "    if widx == len(sent)-1:\n",
    "        features['__EOS__'] = True\n",
    "    ## Word Feature\n",
    "    if not lowercase:\n",
    "        if np.random.rand() > dropout:\n",
    "            features[\"word_original\"] = word\n",
    "    curr_word_normed = get_word_form(word, lower=lowercase, vocab=vocab)\n",
    "    #features[\"normed_word\"] = curr_word_normed\n",
    "    \n",
    "    \"\"\"\n",
    "    if widx > 0:\n",
    "        prev_word = get_word_form(sent[widx-1][WORD_IDX], lower=lowercase)\n",
    "        features[\"word[-1]\"] = prev_word\n",
    "        if interactions:\n",
    "            if np.random.rand() > dropout:\n",
    "                features[\"word[-1]=%s|word=%s\" % (prev_word, curr_word_normed)] = True\n",
    "    if widx < len(sent) -1:\n",
    "        next_word = get_word_form(sent[widx+1][WORD_IDX], lower=lowercase)\n",
    "        features[\"word[+1]\"] = next_word\n",
    "        if interactions:\n",
    "            if np.random.rand() > dropout:\n",
    "                features[\"word[+1]=%s|word=%s\" % (next_word, curr_word_normed)] = True\n",
    "    \"\"\"\n",
    "    return features\n",
    "\n",
    "def sent2features(sent, extra_features=None, **kwargs):\n",
    "    if extra_features:\n",
    "        return [word2features(sent, i, extra_features=extra_features[i],\n",
    "                              **kwargs) for i in range(len(sent))]\n",
    "    return [word2features(sent, i, **kwargs) for i in range(len(sent))]\n",
    "\n",
    "def sent2labels(sent, lbl_id=1):\n",
    "    return [k[lbl_id] for k in sent]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def get_global_sequence_features(sent, word2vec_model=None, cluster_vocabs=None, WORD_IDX=0,\n",
    "                                 predictions=None):\n",
    "    features = {}\n",
    "    sent_length = len(sent) * 1.\n",
    "    for word in sent:\n",
    "        word = word[WORD_IDX]\n",
    "        lookup_key = preprocess_token(word, to_lower=True)\n",
    "        if word2vec_model and lookup_key in word2vec_model:\n",
    "            for i,v in enumerate(word2vec_model[lookup_key]):\n",
    "                features[\"_GLOBAL_WORDVEC_%s\" % i] = dict.get(features, \"_GLOBAL_WORDVEC_%s\" % i, 0) + v\n",
    "        if cluster_vocabs and lookup_key in cluster_vocabs:\n",
    "            v = dict.get(cluster_vocabs, lookup_key)\n",
    "            features[\"_GLOBAL_CLUSTER_=%s\" % v] = dict.get(features, \"_GLOBAL_CLUSTER_=%s\" % v, 0) + 1\n",
    "    features = {k: v / sent_length for k,v in features.iteritems()}\n",
    "    if predictions:\n",
    "        for k, prob in predictions.iteritems():\n",
    "            features[\"_MODEL_=%s\" % k] = prob\n",
    "    return [features for word in sent]\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_global_predictions(models, X_train):\n",
    "    predictions = {}\n",
    "    for k, model in models.iteritems():\n",
    "        y_pred = model.predict_proba(X_train)[:, 1]\n",
    "        predictions[k] = y_pred\n",
    "    keys = predictions.keys()\n",
    "    predictions = [dict(zip(keys, v)) for v in zip(*predictions.values())]\n",
    "    return predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "predictions_train = get_global_predictions(models, tweet_X_train)\n",
    "predictions_dev = get_global_predictions(models, tweet_X_test)\n",
    "predictions_test = get_global_predictions(models, tweet_X_test_final)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "del upsampled_training_data\n",
    "del upsampled_predictions_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2394 2394 1420 1420\n",
      "CPU times: user 24.3 s, sys: 832 ms, total: 25.2 s\n",
      "Wall time: 25.2 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "#upsampled_training_data = train_sequences*5\n",
    "X_train = [sent2features(s, vocab=None,\n",
    "                         dict_features=dict_features, vocab_presence_only=False,\n",
    "                         window=2, interactions=True, dict_interactions=False,\n",
    "                         lowercase=True, dropout=0, word2vec_model=model_glove,\n",
    "                        cluster_vocabs=[\n",
    "            cluster_vocab,\n",
    "            cluster_vocab_clark,\n",
    "            cluster_vocab_wv\n",
    "        ],\n",
    "              #extra_features=get_global_sequence_features(\n",
    "            #s, cluster_vocabs=cluster_vocab, word2vec_model=model_glove,\n",
    "        #predictions=p\n",
    "        #)\n",
    "        )\n",
    "           for s, p in zip(train_sequences, predictions_train)]\n",
    "y_train = [sent2labels(s) for s in train_sequences]\n",
    "\n",
    "X_test = [sent2features(s, vocab=None,\n",
    "                         dict_features=dict_features, vocab_presence_only=False,\n",
    "                         window=2, interactions=True, dict_interactions=False,\n",
    "                         lowercase=True, dropout=0, word2vec_model=model_glove,\n",
    "                        cluster_vocabs=[\n",
    "            cluster_vocab,\n",
    "            cluster_vocab_clark,\n",
    "            cluster_vocab_wv\n",
    "        ],\n",
    "              #extra_features=get_global_sequence_features(\n",
    "            #s, cluster_vocabs=cluster_vocab, word2vec_model=model_glove,\n",
    "        #predictions=p\n",
    "        #)\n",
    "        )\n",
    "          for s, p in zip(dev_sequences, predictions_dev)]\n",
    "y_test = [sent2labels(s) for s in dev_sequences]\n",
    "print len(X_train), len(y_train), len(X_test), len(y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2394 2394 1420 1420 3856 3856\n",
      "CPU times: user 39 s, sys: 1.86 s, total: 40.8 s\n",
      "Wall time: 40.8 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "#upsampled_training_data = train_sequences*5\n",
    "X_train = [sent2features(s, vocab=None,\n",
    "                         dict_features=dict_features, vocab_presence_only=False,\n",
    "                         window=2, interactions=True, dict_interactions=False,\n",
    "                         lowercase=True, dropout=0, word2vec_model=model_glove,\n",
    "                        cluster_vocabs=None)\n",
    "           for s, p in zip(train_sequences, predictions_train)]\n",
    "y_train = [sent2labels(s) for s in train_sequences]\n",
    "\n",
    "X_test = [sent2features(s, vocab=None,\n",
    "                         dict_features=dict_features, vocab_presence_only=False,\n",
    "                         window=2, interactions=True, dict_interactions=False,\n",
    "                         lowercase=True, dropout=0, word2vec_model=model_glove,\n",
    "                        cluster_vocabs=None)\n",
    "          for s, p in zip(dev_sequences, predictions_dev)]\n",
    "y_test = [sent2labels(s) for s in dev_sequences]\n",
    "\n",
    "\n",
    "X_test_final = [sent2features(s, vocab=None,\n",
    "                         dict_features=dict_features, vocab_presence_only=False,\n",
    "                         window=2, interactions=True, dict_interactions=False,\n",
    "                         lowercase=True, dropout=0, word2vec_model=model_glove,\n",
    "                        cluster_vocabs=None)\n",
    "          for s, p in zip(test_sequences, predictions_test)]\n",
    "y_test_final = [sent2labels(s) for s in test_sequences]\n",
    "\n",
    "print len(X_train), len(y_train), len(X_test), len(y_test), len(X_test_final), len(y_test_final)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Upscaled sampling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 44.8 s, sys: 1.44 s, total: 46.3 s\n",
      "Wall time: 46.3 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "upsampled_training_data = train_sequences*1\n",
    "upsampled_predictions_train = predictions_train*1\n",
    "X_train = [sent2features(s, vocab=None,\n",
    "                         dict_features=dict_features, vocab_presence_only=False,\n",
    "                         window=2, interactions=True, dict_interactions=False,\n",
    "                         lowercase=True, dropout=0.5, word2vec_model=model_glove,\n",
    "                        cluster_vocabs=[\n",
    "            cluster_vocab,\n",
    "            cluster_vocab_clark,\n",
    "            cluster_vocab_wv\n",
    "        ],\n",
    "              extra_features=get_global_sequence_features(\n",
    "            s, cluster_vocabs=cluster_vocab, word2vec_model=model_glove,\n",
    "        predictions=p\n",
    "        ))\n",
    "           for s, p in zip(upsampled_training_data, upsampled_predictions_train)]\n",
    "y_train = [sent2labels(s) for s in upsampled_training_data]\n",
    "\n",
    "X_test = [sent2features(s, vocab=None,\n",
    "                         dict_features=dict_features, vocab_presence_only=False,\n",
    "                         window=2, interactions=True, dict_interactions=False,\n",
    "                         lowercase=True, dropout=0, word2vec_model=model_glove,\n",
    "                        cluster_vocabs=[\n",
    "            cluster_vocab,\n",
    "            cluster_vocab_clark,\n",
    "            cluster_vocab_wv\n",
    "        ],\n",
    "              extra_features=get_global_sequence_features(\n",
    "            s, cluster_vocabs=cluster_vocab, word2vec_model=model_glove,\n",
    "        predictions=p\n",
    "        ))\n",
    "          for s, p in zip(dev_sequences, predictions_dev)]\n",
    "y_test = [sent2labels(s) for s in dev_sequences]\n",
    "#print len(X_train), len(y_train), len(X_test), len(y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 3min 2s, sys: 1.34 s, total: 3min 3s\n",
      "Wall time: 3min 3s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "crf = sklearn_crfsuite.CRF(\n",
    "    algorithm='l2sgd', \n",
    "    c2=1e-3,\n",
    "    #max_iterations=100,\n",
    "    #calibration_samples=20,\n",
    "    #all_possible_transitions=True,\n",
    "    #all_possible_states=True\n",
    ")\n",
    "crf.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training accuracy:  0.824920156493\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "      <th>f1-score</th>\n",
       "      <th>support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B-company</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.815</td>\n",
       "      <td>0.898</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>E-company</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.815</td>\n",
       "      <td>0.898</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>I-company</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.889</td>\n",
       "      <td>0.941</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>U-company</td>\n",
       "      <td>0.976</td>\n",
       "      <td>0.833</td>\n",
       "      <td>0.899</td>\n",
       "      <td>144</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>B-facility</td>\n",
       "      <td>0.986</td>\n",
       "      <td>0.899</td>\n",
       "      <td>0.940</td>\n",
       "      <td>79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>E-facility</td>\n",
       "      <td>0.986</td>\n",
       "      <td>0.897</td>\n",
       "      <td>0.940</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>I-facility</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.962</td>\n",
       "      <td>0.980</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>U-facility</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.615</td>\n",
       "      <td>0.762</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>B-geo-loc</td>\n",
       "      <td>0.977</td>\n",
       "      <td>0.956</td>\n",
       "      <td>0.966</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>E-geo-loc</td>\n",
       "      <td>0.974</td>\n",
       "      <td>0.950</td>\n",
       "      <td>0.962</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>I-geo-loc</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>U-geo-loc</td>\n",
       "      <td>0.906</td>\n",
       "      <td>0.957</td>\n",
       "      <td>0.931</td>\n",
       "      <td>232</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>B-movie</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.931</td>\n",
       "      <td>0.964</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>E-movie</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.931</td>\n",
       "      <td>0.964</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>I-movie</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>U-movie</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>B-musicartist</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.919</td>\n",
       "      <td>0.958</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>E-musicartist</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.919</td>\n",
       "      <td>0.958</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>I-musicartist</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>U-musicartist</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.611</td>\n",
       "      <td>0.759</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>B-other</td>\n",
       "      <td>0.982</td>\n",
       "      <td>0.344</td>\n",
       "      <td>0.509</td>\n",
       "      <td>157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>E-other</td>\n",
       "      <td>0.981</td>\n",
       "      <td>0.340</td>\n",
       "      <td>0.505</td>\n",
       "      <td>156</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>I-other</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.146</td>\n",
       "      <td>0.255</td>\n",
       "      <td>164</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>U-other</td>\n",
       "      <td>0.854</td>\n",
       "      <td>0.603</td>\n",
       "      <td>0.707</td>\n",
       "      <td>68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>B-person</td>\n",
       "      <td>0.995</td>\n",
       "      <td>0.995</td>\n",
       "      <td>0.995</td>\n",
       "      <td>199</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>E-person</td>\n",
       "      <td>0.995</td>\n",
       "      <td>0.995</td>\n",
       "      <td>0.995</td>\n",
       "      <td>197</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>I-person</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>U-person</td>\n",
       "      <td>0.919</td>\n",
       "      <td>0.812</td>\n",
       "      <td>0.862</td>\n",
       "      <td>250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>B-product</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.959</td>\n",
       "      <td>0.979</td>\n",
       "      <td>49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>E-product</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.958</td>\n",
       "      <td>0.979</td>\n",
       "      <td>48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>I-product</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.839</td>\n",
       "      <td>0.912</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>U-product</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.612</td>\n",
       "      <td>0.759</td>\n",
       "      <td>49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>B-sportsteam</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>1.000</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>E-sportsteam</td>\n",
       "      <td>0.952</td>\n",
       "      <td>0.952</td>\n",
       "      <td>0.952</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>I-sportsteam</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.500</td>\n",
       "      <td>0.667</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>U-sportsteam</td>\n",
       "      <td>0.958</td>\n",
       "      <td>0.793</td>\n",
       "      <td>0.868</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>B-tvshow</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.773</td>\n",
       "      <td>0.872</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>E-tvshow</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.773</td>\n",
       "      <td>0.872</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>I-tvshow</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.444</td>\n",
       "      <td>0.615</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>U-tvshow</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.750</td>\n",
       "      <td>0.857</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>avg/total</td>\n",
       "      <td>0.972</td>\n",
       "      <td>0.769</td>\n",
       "      <td>0.825</td>\n",
       "      <td>2462</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            class precision recall f1-score support\n",
       "0       B-company     1.000  0.815    0.898      27\n",
       "1       E-company     1.000  0.815    0.898      27\n",
       "2       I-company     1.000  0.889    0.941       9\n",
       "3       U-company     0.976  0.833    0.899     144\n",
       "4      B-facility     0.986  0.899    0.940      79\n",
       "5      E-facility     0.986  0.897    0.940      78\n",
       "6      I-facility     1.000  0.962    0.980      26\n",
       "7      U-facility     1.000  0.615    0.762      26\n",
       "8       B-geo-loc     0.977  0.956    0.966      45\n",
       "9       E-geo-loc     0.974  0.950    0.962      40\n",
       "10      I-geo-loc     1.000  1.000    1.000       8\n",
       "11      U-geo-loc     0.906  0.957    0.931     232\n",
       "12        B-movie     1.000  0.931    0.964      29\n",
       "13        E-movie     1.000  0.931    0.964      29\n",
       "14        I-movie     1.000  1.000    1.000      17\n",
       "15        U-movie     1.000  1.000    1.000       5\n",
       "16  B-musicartist     1.000  0.919    0.958      37\n",
       "17  E-musicartist     1.000  0.919    0.958      37\n",
       "18  I-musicartist     1.000  1.000    1.000      24\n",
       "19  U-musicartist     1.000  0.611    0.759      18\n",
       "20        B-other     0.982  0.344    0.509     157\n",
       "21        E-other     0.981  0.340    0.505     156\n",
       "22        I-other     1.000  0.146    0.255     164\n",
       "23        U-other     0.854  0.603    0.707      68\n",
       "24       B-person     0.995  0.995    0.995     199\n",
       "25       E-person     0.995  0.995    0.995     197\n",
       "26       I-person     1.000  1.000    1.000      18\n",
       "27       U-person     0.919  0.812    0.862     250\n",
       "28      B-product     1.000  0.959    0.979      49\n",
       "29      E-product     1.000  0.958    0.979      48\n",
       "30      I-product     1.000  0.839    0.912      31\n",
       "31      U-product     1.000  0.612    0.759      49\n",
       "32   B-sportsteam     1.000  1.000    1.000      22\n",
       "33   E-sportsteam     0.952  0.952    0.952      21\n",
       "34   I-sportsteam     1.000  0.500    0.667       2\n",
       "35   U-sportsteam     0.958  0.793    0.868      29\n",
       "36       B-tvshow     1.000  0.773    0.872      22\n",
       "37       E-tvshow     1.000  0.773    0.872      22\n",
       "38       I-tvshow     1.000  0.444    0.615       9\n",
       "39       U-tvshow     1.000  0.750    0.857      12\n",
       "40      avg/total     0.972  0.769    0.825    2462"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "labels = list(crf.classes_)\n",
    "labels.remove('O')\n",
    "\n",
    "# group B and I results\n",
    "sorted_labels = sorted(\n",
    "    labels, \n",
    "    key=lambda name: (name[1:], name[0])\n",
    ")\n",
    "\n",
    "y_pred = crf.predict(X_train)\n",
    "print \"Training accuracy: \", metrics.flat_f1_score(y_train, y_pred, \n",
    "                      average='weighted', labels=labels)\n",
    "\n",
    "report = metrics.flat_classification_report(\n",
    "    y_train, y_pred, labels=sorted_labels, digits=3\n",
    ")\n",
    "display(classification_report_to_df(report))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dev accuracy: "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/entity/anaconda2/lib/python2.7/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n",
      "/home/entity/anaconda2/lib/python2.7/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
      "  'recall', 'true', average, warn_for)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " 0.310909559247\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/entity/anaconda2/lib/python2.7/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n",
      "/home/entity/anaconda2/lib/python2.7/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples.\n",
      "  'recall', 'true', average, warn_for)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "      <th>f1-score</th>\n",
       "      <th>support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B-company</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>E-company</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>I-company</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>U-company</td>\n",
       "      <td>0.479</td>\n",
       "      <td>0.511</td>\n",
       "      <td>0.495</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>B-facility</td>\n",
       "      <td>0.160</td>\n",
       "      <td>0.143</td>\n",
       "      <td>0.151</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>E-facility</td>\n",
       "      <td>0.259</td>\n",
       "      <td>0.259</td>\n",
       "      <td>0.259</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>I-facility</td>\n",
       "      <td>0.250</td>\n",
       "      <td>0.059</td>\n",
       "      <td>0.095</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>U-facility</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>B-geo-loc</td>\n",
       "      <td>0.567</td>\n",
       "      <td>0.415</td>\n",
       "      <td>0.479</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>E-geo-loc</td>\n",
       "      <td>0.607</td>\n",
       "      <td>0.472</td>\n",
       "      <td>0.531</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>I-geo-loc</td>\n",
       "      <td>0.500</td>\n",
       "      <td>0.045</td>\n",
       "      <td>0.083</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>U-geo-loc</td>\n",
       "      <td>0.436</td>\n",
       "      <td>0.645</td>\n",
       "      <td>0.520</td>\n",
       "      <td>121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>B-movie</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>E-movie</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>I-movie</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>U-movie</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>B-musicartist</td>\n",
       "      <td>0.500</td>\n",
       "      <td>0.059</td>\n",
       "      <td>0.105</td>\n",
       "      <td>34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>E-musicartist</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.067</td>\n",
       "      <td>0.125</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>I-musicartist</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.091</td>\n",
       "      <td>0.167</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>U-musicartist</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>B-other</td>\n",
       "      <td>0.200</td>\n",
       "      <td>0.104</td>\n",
       "      <td>0.137</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>E-other</td>\n",
       "      <td>0.216</td>\n",
       "      <td>0.105</td>\n",
       "      <td>0.142</td>\n",
       "      <td>76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>I-other</td>\n",
       "      <td>0.059</td>\n",
       "      <td>0.015</td>\n",
       "      <td>0.024</td>\n",
       "      <td>65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>U-other</td>\n",
       "      <td>0.316</td>\n",
       "      <td>0.245</td>\n",
       "      <td>0.276</td>\n",
       "      <td>102</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>B-person</td>\n",
       "      <td>0.676</td>\n",
       "      <td>0.773</td>\n",
       "      <td>0.722</td>\n",
       "      <td>119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>E-person</td>\n",
       "      <td>0.659</td>\n",
       "      <td>0.731</td>\n",
       "      <td>0.693</td>\n",
       "      <td>119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>I-person</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>U-person</td>\n",
       "      <td>0.595</td>\n",
       "      <td>0.576</td>\n",
       "      <td>0.585</td>\n",
       "      <td>125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>B-product</td>\n",
       "      <td>0.231</td>\n",
       "      <td>0.094</td>\n",
       "      <td>0.133</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>E-product</td>\n",
       "      <td>0.100</td>\n",
       "      <td>0.031</td>\n",
       "      <td>0.048</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>I-product</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>U-product</td>\n",
       "      <td>0.400</td>\n",
       "      <td>0.429</td>\n",
       "      <td>0.414</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>B-sportsteam</td>\n",
       "      <td>0.333</td>\n",
       "      <td>0.100</td>\n",
       "      <td>0.154</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>E-sportsteam</td>\n",
       "      <td>0.500</td>\n",
       "      <td>0.105</td>\n",
       "      <td>0.174</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>I-sportsteam</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>U-sportsteam</td>\n",
       "      <td>0.857</td>\n",
       "      <td>0.212</td>\n",
       "      <td>0.340</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>B-tvshow</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>E-tvshow</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>I-tvshow</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>U-tvshow</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>avg/total</td>\n",
       "      <td>0.390</td>\n",
       "      <td>0.305</td>\n",
       "      <td>0.311</td>\n",
       "      <td>1567</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            class precision recall f1-score support\n",
       "0       B-company     0.000  0.000    0.000      27\n",
       "1       E-company     0.000  0.000    0.000      27\n",
       "2       I-company     0.000  0.000    0.000      14\n",
       "3       U-company     0.479  0.511    0.495      45\n",
       "4      B-facility     0.160  0.143    0.151      28\n",
       "5      E-facility     0.259  0.259    0.259      27\n",
       "6      I-facility     0.250  0.059    0.095      17\n",
       "7      U-facility     0.000  0.000    0.000      18\n",
       "8       B-geo-loc     0.567  0.415    0.479      41\n",
       "9       E-geo-loc     0.607  0.472    0.531      36\n",
       "10      I-geo-loc     0.500  0.045    0.083      22\n",
       "11      U-geo-loc     0.436  0.645    0.520     121\n",
       "12        B-movie     0.000  0.000    0.000      12\n",
       "13        E-movie     0.000  0.000    0.000      12\n",
       "14        I-movie     0.000  0.000    0.000       5\n",
       "15        U-movie     0.000  0.000    0.000       6\n",
       "16  B-musicartist     0.500  0.059    0.105      34\n",
       "17  E-musicartist     1.000  0.067    0.125      30\n",
       "18  I-musicartist     1.000  0.091    0.167      11\n",
       "19  U-musicartist     0.000  0.000    0.000      23\n",
       "20        B-other     0.200  0.104    0.137      77\n",
       "21        E-other     0.216  0.105    0.142      76\n",
       "22        I-other     0.059  0.015    0.024      65\n",
       "23        U-other     0.316  0.245    0.276     102\n",
       "24       B-person     0.676  0.773    0.722     119\n",
       "25       E-person     0.659  0.731    0.693     119\n",
       "26       I-person     0.000  0.000    0.000      16\n",
       "27       U-person     0.595  0.576    0.585     125\n",
       "28      B-product     0.231  0.094    0.133      32\n",
       "29      E-product     0.100  0.031    0.048      32\n",
       "30      I-product     0.000  0.000    0.000      95\n",
       "31      U-product     0.400  0.429    0.414      14\n",
       "32   B-sportsteam     0.333  0.100    0.154      20\n",
       "33   E-sportsteam     0.500  0.105    0.174      19\n",
       "34   I-sportsteam     0.000  0.000    0.000       5\n",
       "35   U-sportsteam     0.857  0.212    0.340      85\n",
       "36       B-tvshow     0.000  0.000    0.000       2\n",
       "37       E-tvshow     0.000  0.000    0.000       2\n",
       "38       I-tvshow     0.000  0.000    0.000       0\n",
       "39       U-tvshow     0.000  0.000    0.000       6\n",
       "40      avg/total     0.390  0.305    0.311    1567"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_pred = crf.predict(X_test)\n",
    "print \"Dev accuracy: \", metrics.flat_f1_score(y_test, y_pred, \n",
    "                      average='weighted', labels=labels)\n",
    "\n",
    "report = metrics.flat_classification_report(\n",
    "    y_test, y_pred, labels=sorted_labels, digits=3\n",
    ")\n",
    "display(classification_report_to_df(report))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Top likely transitions:\n",
      "I-other -> E-other 8.326677\n",
      "I-other -> I-other 8.033766\n",
      "B-other -> I-other 7.837208\n",
      "B-person -> E-person 7.352172\n",
      "B-facility -> E-facility 6.703254\n",
      "B-other -> E-other 6.689907\n",
      "O      -> O       6.396305\n",
      "B-facility -> I-facility 5.967874\n",
      "B-product -> E-product 5.831560\n",
      "I-facility -> E-facility 5.813935\n",
      "B-musicartist -> E-musicartist 5.617387\n",
      "B-geo-loc -> E-geo-loc 5.009069\n",
      "B-company -> E-company 4.985373\n",
      "I-product -> I-product 4.526349\n",
      "E-person -> O       4.506007\n",
      "U-person -> O       4.287536\n",
      "I-product -> E-product 4.226619\n",
      "O      -> U-person 4.145612\n",
      "B-sportsteam -> E-sportsteam 4.123253\n",
      "I-movie -> E-movie 4.110048\n",
      "B-movie -> E-movie 4.103894\n",
      "O      -> U-geo-loc 4.078506\n",
      "B-tvshow -> E-tvshow 3.955884\n",
      "I-person -> E-person 3.904069\n",
      "U-other -> O       3.733201\n"
     ]
    }
   ],
   "source": [
    "print(\"Top likely transitions:\")\n",
    "print_transitions(Counter(crf.transition_features_).most_common(25))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['B-person', 'I-person', 'E-person', 'U-person', 'B-other', 'I-other', 'E-other', 'U-other', 'B-geo-loc', 'I-geo-loc', 'E-geo-loc', 'U-geo-loc', 'B-facility', 'I-facility', 'E-facility', 'U-facility', 'B-company', 'I-company', 'E-company', 'U-company', 'B-product', 'I-product', 'E-product', 'U-product', 'B-musicartist', 'I-musicartist', 'E-musicartist', 'U-musicartist', 'B-movie', 'I-movie', 'E-movie', 'U-movie', 'B-sportsteam', 'I-sportsteam', 'E-sportsteam', 'U-sportsteam', 'B-tvshow', 'I-tvshow', 'E-tvshow', 'U-tvshow', 'O']\n"
     ]
    }
   ],
   "source": [
    "possible_labels = [\"%s-%s\" % (k1,k) for k in cat_names\n",
    "    for k1 in [\"B\", \"I\", \"E\", \"U\"]] + [\"O\"]\n",
    "print possible_labels\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "40"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "possible_labels.index(\"O\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\niIjIZP4CHsMZbtTrvDYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f8e3691ae50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "transition_matrix = np.zeros((len(possible_labels), len(possible_labels)))\n",
    "for k in possible_labels:\n",
    "    for k1 in possible_labels:\n",
    "        if (k,k1) in crf.transition_features_:\n",
    "            i,j = possible_labels.index(k), possible_labels.index(k1)\n",
    "            transition_matrix[i,j] = crf.transition_features_[(k,k1)]\n",
    "\n",
    "with plt.rc_context(rc={'xtick.labelsize': 10, 'ytick.labelsize': 10,\n",
    "                        'font.size': 10,\n",
    "                       'figure.figsize': (10,8)}):        \n",
    "    sns.heatmap(data=transition_matrix,\n",
    "            xticklabels=possible_labels, yticklabels=possible_labels,\n",
    "           cmap=\"RdGy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "person\t__BOS__->U-person=2.295\tDICT=cap.1000|DICT=cities.txt.results.txt->U-person=-1.970\n",
      "other\t_WORDVEC_166->E-other=2.063\tbias->I-other=-1.715\n",
      "geo-loc\tDICT=location->U-geo-loc=3.395\tDICT=all_geonames.txt|DICT=firstname.5k->U-geo-loc=-1.356\n",
      "facility\t_WORDVEC_11->E-facility=2.020\t_WORDVEC_185->B-facility=-0.917\n",
      "company\tDICT=venture_capital.venture_funded_company->U-company=1.949\tsinglePunctuation[-1]|isInitCapitalWord->U-company=-1.327\n",
      "product\t_WORDVEC_36->B-product=1.773\tDICT=musicartist_namevariants.unique.txt->U-product=-1.651\n",
      "musicartist\tDICTBCK[-1]=musicartist_names.unique.txt->E-musicartist=1.751\tDICT=all_geonames.txt->U-musicartist=-1.497\n",
      "movie\t_WORDVEC_125->E-movie=1.489\tisAlphaNumeric[+1]->E-movie=-0.699\n",
      "sportsteam\t_WORDVEC_18->U-sportsteam=1.469\t_WORDVEC_30->U-sportsteam=-1.499\n",
      "tvshow\t_WORDVEC_164->U-tvshow=1.372\t_WORDVEC_128->E-tvshow=-0.863\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>type</th>\n",
       "      <th>best_feature-&gt;tag</th>\n",
       "      <th>best_weight</th>\n",
       "      <th>worst_feature-&gt;tag</th>\n",
       "      <th>worst_weight</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>person</td>\n",
       "      <td>__BOS__-&gt;U-person</td>\n",
       "      <td>2.295405</td>\n",
       "      <td>DICT=cap.1000|DICT=cities.txt.results.txt-&gt;U-p...</td>\n",
       "      <td>-1.970363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>other</td>\n",
       "      <td>_WORDVEC_166-&gt;E-other</td>\n",
       "      <td>2.062579</td>\n",
       "      <td>bias-&gt;I-other</td>\n",
       "      <td>-1.715318</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>geo-loc</td>\n",
       "      <td>DICT=location-&gt;U-geo-loc</td>\n",
       "      <td>3.394731</td>\n",
       "      <td>DICT=all_geonames.txt|DICT=firstname.5k-&gt;U-geo...</td>\n",
       "      <td>-1.356119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>facility</td>\n",
       "      <td>_WORDVEC_11-&gt;E-facility</td>\n",
       "      <td>2.019817</td>\n",
       "      <td>_WORDVEC_185-&gt;B-facility</td>\n",
       "      <td>-0.917035</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>company</td>\n",
       "      <td>DICT=venture_capital.venture_funded_company-&gt;U...</td>\n",
       "      <td>1.949183</td>\n",
       "      <td>singlePunctuation[-1]|isInitCapitalWord-&gt;U-com...</td>\n",
       "      <td>-1.326950</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>product</td>\n",
       "      <td>_WORDVEC_36-&gt;B-product</td>\n",
       "      <td>1.772786</td>\n",
       "      <td>DICT=musicartist_namevariants.unique.txt-&gt;U-pr...</td>\n",
       "      <td>-1.651250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>musicartist</td>\n",
       "      <td>DICTBCK[-1]=musicartist_names.unique.txt-&gt;E-mu...</td>\n",
       "      <td>1.751041</td>\n",
       "      <td>DICT=all_geonames.txt-&gt;U-musicartist</td>\n",
       "      <td>-1.496501</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>movie</td>\n",
       "      <td>_WORDVEC_125-&gt;E-movie</td>\n",
       "      <td>1.489030</td>\n",
       "      <td>isAlphaNumeric[+1]-&gt;E-movie</td>\n",
       "      <td>-0.699285</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>sportsteam</td>\n",
       "      <td>_WORDVEC_18-&gt;U-sportsteam</td>\n",
       "      <td>1.469200</td>\n",
       "      <td>_WORDVEC_30-&gt;U-sportsteam</td>\n",
       "      <td>-1.499198</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>tvshow</td>\n",
       "      <td>_WORDVEC_164-&gt;U-tvshow</td>\n",
       "      <td>1.372385</td>\n",
       "      <td>_WORDVEC_128-&gt;E-tvshow</td>\n",
       "      <td>-0.863096</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          type                                  best_feature->tag  \\\n",
       "0       person                                  __BOS__->U-person   \n",
       "1        other                              _WORDVEC_166->E-other   \n",
       "2      geo-loc                           DICT=location->U-geo-loc   \n",
       "3     facility                            _WORDVEC_11->E-facility   \n",
       "4      company  DICT=venture_capital.venture_funded_company->U...   \n",
       "5      product                             _WORDVEC_36->B-product   \n",
       "6  musicartist  DICTBCK[-1]=musicartist_names.unique.txt->E-mu...   \n",
       "7        movie                              _WORDVEC_125->E-movie   \n",
       "8   sportsteam                          _WORDVEC_18->U-sportsteam   \n",
       "9       tvshow                             _WORDVEC_164->U-tvshow   \n",
       "\n",
       "   best_weight                                 worst_feature->tag  \\\n",
       "0     2.295405  DICT=cap.1000|DICT=cities.txt.results.txt->U-p...   \n",
       "1     2.062579                                      bias->I-other   \n",
       "2     3.394731  DICT=all_geonames.txt|DICT=firstname.5k->U-geo...   \n",
       "3     2.019817                           _WORDVEC_185->B-facility   \n",
       "4     1.949183  singlePunctuation[-1]|isInitCapitalWord->U-com...   \n",
       "5     1.772786  DICT=musicartist_namevariants.unique.txt->U-pr...   \n",
       "6     1.751041               DICT=all_geonames.txt->U-musicartist   \n",
       "7     1.489030                        isAlphaNumeric[+1]->E-movie   \n",
       "8     1.469200                          _WORDVEC_30->U-sportsteam   \n",
       "9     1.372385                             _WORDVEC_128->E-tvshow   \n",
       "\n",
       "   worst_weight  \n",
       "0     -1.970363  \n",
       "1     -1.715318  \n",
       "2     -1.356119  \n",
       "3     -0.917035  \n",
       "4     -1.326950  \n",
       "5     -1.651250  \n",
       "6     -1.496501  \n",
       "7     -0.699285  \n",
       "8     -1.499198  \n",
       "9     -0.863096  "
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_t=[]\n",
    "for k in cat_names:\n",
    "    t = max(filter(lambda t: t[0][1][0] != \"O\" and t[0][1][2:] == k, \n",
    "            crf.state_features_.iteritems()), \n",
    "        key=lambda x: x[1])\n",
    "    t1 = min(filter(lambda t: t[0][1][0] != \"O\" and t[0][1][2:] == k, \n",
    "            crf.state_features_.iteritems()), \n",
    "        key=lambda x: x[1])\n",
    "    df_t.append((k,\n",
    "                 \"%s->%s\" % (t[0][0], t[0][1]), t[1],\n",
    "                 \"%s->%s\" % (t1[0][0], t1[0][1]), t1[1],\n",
    "                ))\n",
    "    print(\"%s\\t%s=%.3f\\t%s=%.3f\" % df_t[-1])\n",
    "\n",
    "pd.DataFrame(df_t, columns=[\"type\", \"best_feature->tag\", \"best_weight\",\n",
    "                            \"worst_feature->tag\", \"worst_weight\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Top positive:\n",
      "3.763873 O        __EOS__\n",
      "3.707039 O        __BOS__\n",
      "3.394731 U-geo-loc DICT=location\n",
      "2.942223 O        DICT=lower.5000\n",
      "2.445900 O        DICT=english.stop\n",
      "2.295405 U-person __BOS__\n",
      "2.083745 O        isMention\n",
      "2.062579 E-other  _WORDVEC_166\n",
      "2.062296 U-geo-loc _WORDVEC_67\n",
      "2.019817 E-facility _WORDVEC_11\n",
      "1.980188 U-geo-loc _WORDVEC_147\n",
      "1.967281 U-other  _WORDVEC_17\n",
      "1.949183 U-company DICT=venture_capital.venture_funded_company\n",
      "1.929431 O        bias\n",
      "1.926127 U-facility _WORDVEC_195\n",
      "1.899395 U-company __BOS__\n",
      "1.886248 U-other  DICT=sports.sports_league\n",
      "1.827847 U-company _WORDVEC_93\n",
      "1.772786 B-product _WORDVEC_36\n",
      "1.768233 U-product _WORDVEC_164\n",
      "1.765749 U-facility _WORDVEC_84\n",
      "1.763810 E-other  _WORDVEC_157\n",
      "1.751041 E-musicartist DICTBCK[-1]=musicartist_names.unique.txt\n",
      "1.738417 O        DICT=firstname.5k|DICT=lower.5000\n",
      "1.717800 U-company DICT=cvg.cvg_developer\n",
      "1.717145 U-geo-loc DICT=all_geonames.txt|DICT=location\n",
      "1.712220 I-other  DICT=internet.website|DICT=movies.txt.results.txt\n",
      "1.709867 U-other  __BOS__\n",
      "1.652793 E-other  _WORDVEC_90\n",
      "1.648497 U-musicartist isAllCapitalWord\n",
      "1.644287 U-geo-loc _WORDVEC_79\n",
      "1.641251 O        isAllSmallCase\n",
      "1.636679 U-company _WORDVEC_134\n",
      "1.620514 O        isURL\n",
      "1.604531 U-person _WORDVEC_90\n",
      "1.591261 E-person _WORDVEC_140\n",
      "1.589253 U-product DICT=product\n",
      "1.585251 U-company __EOS__\n",
      "1.582616 U-facility _WORDVEC_28\n",
      "1.576348 U-person _WORDVEC_136\n",
      "1.576100 U-other  DICT=all_geonames.txt|DICT=sports.sports_league\n",
      "1.568264 U-company _WORDVEC_184\n",
      "1.553355 U-other  DICT=tv.tv_network\n",
      "1.544956 U-person _WORDVEC_143\n",
      "1.542686 E-facility _WORDVEC_125\n",
      "1.534654 U-company _WORDVEC_147\n",
      "1.528150 U-product _WORDVEC_199\n",
      "1.526317 I-other  _WORDVEC_6\n",
      "1.524695 O        DICT=cities.txt.results.txt|DICT=companynames.txt.results.txt\n",
      "1.511132 U-company _WORDVEC_103\n",
      "1.504761 I-other  _WORDVEC_173\n",
      "1.498540 U-geo-loc _WORDVEC_155\n",
      "1.493879 B-other  _WORDVEC_6\n",
      "1.489030 E-movie  _WORDVEC_125\n",
      "1.480352 U-other  isAllSmallCase[-1]\n",
      "1.475074 U-other  _WORDVEC_31\n",
      "1.469200 U-sportsteam _WORDVEC_18\n",
      "1.468469 U-other  _WORDVEC_73\n",
      "1.467897 U-sportsteam repeatedPunctuation[+1]\n",
      "1.467724 E-facility _WORDVEC_160\n",
      "1.464819 U-person _WORDVEC_126\n",
      "1.460392 E-other  _WORDVEC_24\n",
      "1.447397 U-sportsteam DICT=musicartist_names.unique.txt|DICT=tvshows.txt.results.txt\n",
      "1.445944 U-sportsteam DICT=tvshows.txt.results.txt\n",
      "1.441370 E-musicartist _WORDVEC_163\n",
      "1.439735 U-geo-loc _WORDVEC_114\n",
      "1.432897 U-product _WORDVEC_39\n",
      "1.432463 U-facility _WORDVEC_117\n",
      "1.431709 E-person _WORDVEC_15\n",
      "1.424392 U-product _WORDVEC_11\n",
      "1.420338 B-movie  _WORDVEC_75\n",
      "1.419208 U-product _WORDVEC_172\n",
      "1.418701 I-other  _WORDVEC_111\n",
      "1.413079 U-geo-loc isAllCapitalWord\n",
      "1.401501 I-other  _WORDVEC_141\n",
      "1.398083 U-product _WORDVEC_103\n",
      "1.385278 U-facility _WORDVEC_85\n",
      "1.385092 U-sportsteam _WORDVEC_26\n",
      "1.378762 B-facility _WORDVEC_48\n",
      "1.378332 E-facility _WORDVEC_60\n",
      "1.375307 U-sportsteam _WORDVEC_181\n",
      "1.372385 U-tvshow _WORDVEC_164\n",
      "1.370419 E-company _WORDVEC_58\n",
      "1.369418 U-person _WORDVEC_31\n",
      "1.366268 U-product _WORDVEC_3\n",
      "1.363318 E-geo-loc _WORDVEC_20\n",
      "1.361340 U-sportsteam _WORDVEC_120\n",
      "1.356724 U-other  _WORDVEC_81\n",
      "1.353394 O        isDigits\n",
      "1.352770 U-geo-loc _WORDVEC_101\n",
      "1.349177 B-other  _WORDVEC_181\n",
      "1.348061 U-company _WORDVEC_194\n",
      "1.347381 U-person _WORDVEC_67\n",
      "1.347111 U-company _WORDVEC_177\n",
      "1.346211 O        DICT=english.stop|DICT=firstname.5k\n",
      "1.346194 E-other  _WORDVEC_38\n",
      "1.345588 E-facility _WORDVEC_90\n",
      "1.345218 E-tvshow isAllSmallCase|singlePunctuation[+1]\n",
      "1.344248 U-movie  DICT=movies.txt.results.txt\n",
      "1.340217 E-movie  _WORDVEC_69\n",
      "\n",
      "Top negative:\n",
      "-1.496501 U-musicartist DICT=all_geonames.txt\n",
      "-1.499198 U-sportsteam _WORDVEC_30\n",
      "-1.519305 E-other  _WORDVEC_130\n",
      "-1.540131 O        DICT_HASHTAG=tv.tv_network\n",
      "-1.651250 U-product DICT=musicartist_namevariants.unique.txt\n",
      "-1.685704 O        DICT=venture_capital.venture_funded_company\n",
      "-1.715318 I-other  bias\n",
      "-1.775317 O        DICT=firstname.5k|DICT=tv.tv_program\n",
      "-1.837221 U-person DICT=firstname.5k|DICT=lastname.5000\n",
      "-1.970363 U-person DICT=cap.1000|DICT=cities.txt.results.txt\n"
     ]
    }
   ],
   "source": [
    "print(\"Top positive:\")\n",
    "print_state_features(Counter(crf.state_features_).most_common(100))\n",
    "\n",
    "print(\"\\nTop negative:\")\n",
    "print_state_features(Counter(crf.state_features_).most_common()[-10:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(41, 41)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAA8++CCurq44ODjQuHFjCgoKSE9Pt+zz9fUFICgoiMGDBwMwbtw48vPzAbj//vu57777+PHHH/H0\n9ASgR48eAHh4eODu7s758+cJCQlhzpw5XLlyBScnJ7Zv386qVatKfM3h4eFFbl+3bl2JY4mIiIiI\niO3REGjrKdcFcEFBASEhIRiGga+vL/369cPZ2dmy32Qy4eDgwMWLF6lRo0ahY11cXEhLS8Pd3Z3q\n1atbttvZ2eHk5GR5bxiGpbitWbOmZXuNGjW4dOkSAMeOHWPWrFn89NNPmEwmLly4gNlsLnSuG3PK\nz8/H09MTX19fkpKSuP/++6lfvz7169e30p0RERERERGR3yvXBbDJZGLLli2W96dOnbIUpQB5eXmk\npqbi5uZWaDtARkYG7u7uf3iOG79tud4TDHDp0iVLQfzyyy/z9NNP069fPwAee+yx28o/LCyMLVu2\n0KBBA0vvdEmpp1dEREREROT2VKg5wH/605/w8vKyLC61evVqJkyYQP369fH09CQ+Ph6AI0eOkJaW\nZhnOfCs39uSePHmSEydOAJCQkED79u2B3wrjZs2aAb8tlpWdnW2ZX3wrwcHBHD58mK1btxISElKy\nixURERERkUrBZDLZ7E95U257gIsbBz9nzhxefvll3nrrLTw8PHj99dcBmD17NhMmTGDBggU4OTkx\nd+5cHB0d/zDuje9bt27N0qVL+c9//oOTkxMLFy4E4IUXXmDYsGG4urrSr18/+vXrx7hx4/joo49u\nGa9mzZq0b9+ezMxMy3xhERERERERuTsM841dnFKs9evXs2nTJt5//32rxp00aRJNmjShf//+Vo0r\nd8/FixdLHaN27dpWyERERG5HdnZ2qWMU9aW5iNx73bp1s0qcpKQkq8S5V25n6mZZ+eWXX8o6hRIp\nf33WFcipU6fYtWsXPXv2LOtURERERETERhmGYbM/5U25HQJd3s2bN4+NGzcyYcKEQitXi4iIiIiI\nyN2hIdAiJaQh0CIi5YuGQItUHJV1CPR9991X1ikU68KFC2WdQomoB1hERERERMSGlcehxrZKc4BF\nRERERESkUlAPsJQLCxYssEqc4cOHlzqGhi/bvoKCglLHKI/PtROxlmvXrpU6RpUqVayQiXVYY/iy\nNT5XQJ8tIqX14osvlnUKUs6pABYREREREbFhGgJtPfoaUkRERERERCoFFcAiIiIiIiJSKZSLAvjs\n2bM89NBDN21fv349AwcOLIOMRERERERE7g3DMGz2p7wpFwUwFD/uvTzedBEREREREbn3yk0BXBLp\n6ekMGTKEwMBAevXqxd69ewG4dOkSI0eOJDg4mB49evDuu+9ajvHx8WH16tX07NmTLl26cODAAUaP\nHk1AQACDBw+moKCAs2fP0rZtW9577z169uzJY489xqeffgqA2Wxm0qRJBAcHExgYyD//+U/y8/MB\niI6OZv78+Tz99NMEBATwzDPPkJ2dzYwZM5gyZYolh8zMTFq1akVGRsY9vFsiIiIiIiKVQ4UsgN96\n6y0aN25McnIyb7zxBqNHj+batWu89dZb1KxZk4SEBJYvX86KFSs4cuSI5biMjAw2bdpEcHAwI0aM\n4IUXXiAhIYH//ve/pKSkAPDrr79iZ2fHpk2bmD59OuPGjaOgoICkpCSOHDlCfHw88fHxfPXVV8TH\nx1tiJyYmMnfuXJKSkkhLSyM5OZkePXqQkJBgebTC9u3bad++PbVq1bq3N0xERERERGxWWQ9zrkhD\noCvkY5B27txp6d1t2rQp27Zto0qVKuzatYt33nkHgJo1a9KtWzf27t1LmzZtAAgMDATA29ubBg0a\n0KBBAwAaNmzIzz//zP33349hGDzxxBMAPPLII+Tn53Pq1Cm6d+9OQEAAJpMJBwcHWrRowY8//mjJ\nyc/PDxcXFwCaNGnCuXPn6NGjBy4uLuzfv5+OHTuSnJxMaGhoia41PDy8yO3r1q0rURwREREREZGK\nrlz0AJtMJsxm803b8/PzMQyDgQMHEhISYike09PTqVGjhqWdk5MTABcvXqRmzZqW7TVq1CAtLe2m\ndiaTyfIawM7OztJLaxiGpZAFcHZ2JjMzk4sXL/Lyyy8TFBRESEgI27ZtsxwDFDrmxng9evRg8+bN\n5OTkkJKSQrdu3e7gDomIiIiIiMgfKRc9wK6urhiGwfnz5/Hy8rJsP3XqFPXq1WPy5MmF2teuXZv0\n9HTq1q0L/LaKtKenJ+7u7mRkZFhiZGRk4O7uXqJczGYzly5dshTSmZmZ1KxZkzlz5uDg4MAnn3yC\nvb09L7300m3FCwsL48knn6Rz5860adMGZ2fnEuWjnl4RERERkYrNZCoX/ZblQrm4k46OjvTu3Zu5\nc+dy7do1AI4fP05cXByRkZE3tQ8ICGD9+vUAfPfdd4SHh1NQUIC/vz8rV64EfusNTkpKwt/fv0S5\nmM1mNm/eDMCePXtwdHSkUaNGpKWl0aRJE+zt7Tlx4gRHjhzh6tWrfxivUaNG3H///cycObPEw59F\nRERERETFuCTIAAAgAElEQVTk9pWLHmCAcePGMWfOHHr37g38Nod31qxZNG7c+Ka2L730EmPGjCEg\nIABnZ2dmzZqFg4MDI0eO5NVXXyUkJAQ7Ozuee+45mjdvDtz6cUo37rOzs+PatWv06NGDS5cu8dpr\nrwEwcOBAxo4dy7p162jbti3R0dH861//omXLln94bT169GDevHl07dq1RPdEREREREREbp9hLmpy\nrRTp7NmzBAUF8eWXX1o17pYtW9i6dSuzZ8+2atyKZMGCBVaJM3z4cKvEEdt24/z7O6WhRlKZXR9t\nVRpVqlSxQia2wxqfK6DPFpHSuvEpK6VR3kZe1q9fv6xTKNaZM2fKOoUS0adwCVn7+4KsrCzefffd\nIodyi4iIiIiIiPWoAC4haz7raseOHYSGhtK1a1fLo5hERERERETk7ig3c4BtQb169aw6/Nnf37/E\ni3CJiIiIiEjlYs1OuMpOPcAiIiIiIiJSKagAFhERERERkUpBQ6ClXLDW6s0XL14sdYzatWtbIRPb\nYY17ArZ1X3799ddSx3BxcbFCJlIZXL582SpxrPE7l5eXZ4VMrLOCszVysbe3nf9N0erNRato/85i\n++zs7Mo6hTKhIdDWo09zERERERERqRRUAIuIiIiIiEiloDEnIiIiIiIiNkxDoK2nUvQA+/j4EBQU\nRGhoKMHBwTz77LOcOXOmyLYFBQVERUURGBjIt99+W+JzHTt2jEGDBgEQHR3NokWLAAgNDbXMtVy9\nevUdXomIiIiIiIjcqUpRABuGQUxMDPHx8SQkJODj48PUqVOLbJuamsrhw4dJTEykcePGJT6Xr68v\nS5YsuWl7fHw8tWvX5sKFC0XuFxERERERkburUhTAZrMZs9lsef/www9z9uzZm9pd7/0tKCigZ8+e\nfPPNNxw9epTw8HBCQkLo0aMH+/fvt7SPi4sjKCiI4OBgxowZQ25uLikpKXTv3v2m2D4+PqSmptK/\nf3/OnTtHaGgo06ZNY8qUKZY2mZmZtGrVioyMDCvfARERERERKa8Mw7DZn/KmUhTAN8rNzWXjxo0E\nBATctM9kMrF06VLs7OyIj4/H29ubCRMmMHjwYLZs2cKgQYOYOHEiAGfOnGHGjBksX76chIQEsrKy\niI2NBYoeo3992+uvv07dunWJj4+nV69eJCYmUlBQAMD27dtp3749tWrVuluXLyIiIiIiUmlVmkWw\noqKiMJlMpKWl4eHhwdChQ2/ruI0bN1pet23b1jJ3eN++fbRp0wZ3d3cAZs6cib29PYcOHSoyzo09\n0Nc1a9YMFxcX9u/fT8eOHUlOTiY0NLRE1xUeHl7k9nXr1pUojoiIiIiISEVXaQrgmJgYPDw8ADh0\n6BARERHExcWRmJhIbGwshmEwatQomjZtWui4DRs2EBMTw9WrV8nPz7cUsunp6bi4uFjaOTg43FFe\nYWFhbN68mXbt2pGSksK0adPu8ApFRERERKQiMpkq3cDdu6bSFMA39sC2a9eOevXqcfjwYSIiIoiI\niLDsu3FucGpqKuPHj2fNmjV4e3tz+vRpgoODAXB1deXo0aOWtleuXCEnJ6fEeYWFhfHkk0/SuXNn\n2rRpg7Ozc4mOV0+viIiIiIjI7amUXyWcPHmSU6dO8cADDxS5/8ZeXicnJxo1akReXh4rV64EICsr\nCz8/P44ePcq5c+cwm81MnDiRtWvX/uG57e3t+fXXX8nPzwegUaNG3H///cycObPEw59FRERERETk\n9lWKHmDDMIiKisLOzg6z2UzVqlWZPHlysY85ur5glY+PD35+fgQFBeHu7s6YMWM4cuQIAwYMYO3a\ntUyaNMkSt2XLljz11FN89tlnt4zp7e1NzZo16dSpE+vXr8fLy4sePXowb948unbtendugIiIiIiI\nlFvlcbVlW2WYi1qdSe6pLVu2sHXrVmbPnl3WqVR4Fy9eLHWM2rVrWyET22GNewK2dV8uX75c6hg3\nzvEXuRVr/L6BdX7n8vLyrJDJb6OVSssauVgjD7m79O8s91piYqJV4gQFBVklzr3y5z//uaxTKNb/\n/ve/sk6hRCrlEGhbkpWVxbvvvktkZGRZpyIiIiIiIlKhqQAuQzt27CA0NJSuXbvSpk2bsk5HRERE\nRERskGEYNvtT3mjMSRny9/fH39+/rNMQERERERGpFNQDLCIiIiIiIpWCeoBFRERERERsWHkcamyr\nVABLpWKNlYpPnDhR6hg+Pj6ljgHWWX3TWqs329LKy9WqVbNKHJHbYa3f24q2mq4t5SJ3j/6d5V77\n5ptvrBKnvK0CLdajIdAiIiIiIiJSKagAFhERERERkUpB41ZERERERERsmOYAW0+l6AH28fEhKCiI\n0NBQQkNDCQkJITQ0lC+++OKmtgUFBURFRREYGMi3335b4nMdO3aMQYMGARAdHc2iRYsACA0N5eLF\niwCsXr26FFcjIiIiIiIid6JS9AAbhkFMTAweHh5/2DY1NZXDhw9z7Ngx7OzsSnwuX19flixZctP2\n+Ph4AC5cuMCSJUvo27dviWOLiIiIiIjInasUPcBmsxmz2fyH7a73/hYUFNCzZ0+++eYbjh49Snh4\nOCEhIfTo0YP9+/db2sfFxREUFERwcDBjxowhNzeXlJQUunfvflNsHx8fUlNT6d+/P+fOnSM0NJRp\n06YxZcoUS5vMzExatWpFRkaGdS5cRERERETKPZPJZLM/5U35y/guMplMLF26FDs7O+Lj4/H29mbC\nhAkMHjyYLVu2MGjQICZOnAjAmTNnmDFjBsuXLychIYGsrCxiY2OBosfoX9/2+uuvU7duXeLj4+nV\nqxeJiYkUFBQAsH37dtq3b0+tWrXu0RWLiIiIiIhUHpViCDRAVFSUZUiz2WzGzc3NUrDeysaNGy2v\n27Zty5kzZwDYt28fbdq0wd3dHYCZM2dib2/PoUOHioxTVA90s2bNcHFxYf/+/XTs2JHk5GRCQ0NL\ndF3h4eFFbl+3bl2J4oiIiIiIiFR0laYALm4O8PLly4mNjcUwDEaNGkXTpk0L7d+wYQMxMTFcvXqV\n/Px8SyGbnp6Oi4uLpZ2Dg8Md5RUWFsbmzZtp164dKSkpTJs27Y7iiIiIiIhIxaRVoK2n0hTAxc0B\njoiIICIiwvL+7NmzltepqamMHz+eNWvW4O3tzenTpwkODgbA1dWVo0ePWtpeuXKFnJycEucVFhbG\nk08+SefOnWnTpg3Ozs4lOl49vSIiIiIiIrdHc4CLcGMvr5OTE40aNSIvL4+VK1cCkJWVhZ+fH0eP\nHuXcuXOYzWYmTpzI2rVr/zC2vb09v/76K/n5+QA0atSI+++/n5kzZ5Z4+LOIiIiIiIjcvkpRABuG\nQVRU1E3PAV6+fHmx7eG3lZv9/PwICgqif//+BAQE0LJlSwYMGICnpyeTJk0iKiqK4OBg7OzseOqp\np26ZA4C3tzc1a9akU6dOnD9/HoAePXpw8eJFunbtat0LFxERERGRcs8wDJv9KW8M8+08H0juqi1b\ntrB161Zmz55d1qnIbThx4kSpY/j4+FghE8jLyyt1DHt768yEuHz5cqlj3DivvjRs6b6I3C793oqI\n/LF58+ZZJc6IESOsEudeadasWVmnUKzjx4+XdQolUil6gG1ZVlYW7777LpGRkWWdioiIiIiISIWm\nr4rL0I4dO5g0aRJ9+vShTZs2ZZ2OiIiIiIjYIJNJ/ZbWogK4DPn7++Pv71/WaYiIiIiIiFQK+ipB\nREREREREKgX1AIuIiIiIiNiw8rjasq1SASyVSk5OTqljWGMFZ2vkAVC1atVSx7BWLra0oLxWwpXy\nSL+3N7Olz0oRsQ3fffddWacg5ZyGQIuIiIiIiEiloK+bRUREREREbJhWgbYe3UkRERERERGpFCpt\nARwQEMCRI0du2r58+XI6derEO++8c0dxBw4cyNdff01KSgrdu3cHYNasWaxcuRKAPXv2cP78+TtP\nXERERERERO6IhkD/TlJSEi+++CJPPPHEHR3/wQcfAJCSkmJZrW3UqFGW/UuXLmXo0KF4eXmVPlkR\nEREREanwtAq09agAvsGbb77JZ599xvfff89PP/3EoEGDGDt2LCdOnCAvL49u3boxZswYAH788Uei\no6P5+eefqVmzJpMmTaJZs2YEBAQwc+bMQnGjo6Np0KABubm5HDhwgO+//57w8HBiYmLYu3evZeXP\nESNG0K5dO6Kiou75tYuIiIiIiFR0lXYIdFFefvllWrRowT//+U+GDx/OihUryMrKIiEhgfXr17N+\n/XrLsOkJEybQs2dPtm7dynPPPWcpjItjGAYvvPACHh4evPXWWwwfPhwvLy92794NQG5uLnv37iU0\nNPSuX6eIiIiIiEhlpB7gIlx/nunAgQOJjIwEwMXFhcaNG/Pjjz/SvHlzDh48yPz58wEIDAykY8eO\nJY4fFhbG5s2b6dKlC3v27KFZs2a4u7uXKNfw8PAit69bt65EcURERERExDZpCLT1VOoCuKCggJCQ\nEAzDwNfXlzfeeKPQ/tOnTzNt2jROnjyJyWTi/PnzPPHEE2RkZGA2m3F2dra0rVatWonPHxoayqJF\ni8jOziY5OVm9vyIiIiIiIndRpS6ATSYTW7ZsKXb/5MmTad68OYsWLQKgf//+ANSqVQvDMMjIyKBW\nrVoA/PDDDzRo0KBE569fvz5NmjQhKSmJnTt38tJLL5X4GtTTKyIiIiIicns0B/gW0tLSaNq0KQB7\n9+7l9OnT/Prrrzg4ONCxY0fWr18PwK5du3j22WdvK2aVKlW4fPmy5X2PHj2YPXs23t7e1K5d2/oX\nISIiIiIi5ZrJZLLZn/Km/GVsJcWNo79x+9ChQ3njjTfo2bMnhw4dYvjw4cyfP5+jR48ydepUtm3b\nRmBgIPPmzWPWrFm3jHtdUFAQL774IkuXLgUgJCSE1NRUDX8WERERERG5ywzz9RWZpEzk5ubStWtX\nPvnkE2rUqFHW6VR4OTk5pY5RtWpVm8gDbCsXa8TRfwMiciNb+qwUEdswYsQIq8SZN2+eVeLcK23b\nti3rFIp1+PDhsk6hRCr1HGBbsHTpUvz9/fU//iIiIiIiUiStAm09KoDLUEhICO7u7pbHKYmIiIiI\niMjdowK4DN1qBWoRERERERGxLhXAIiIiIiIiNqw8rrZsq3QnRUREREREpFJQD7BUKrayEqit5AHW\ny8WWrunGZ23fKRcXFytkInL7bGWVeltS0a5HREpv3759ZZ2ClHMqgEVERERERGyYVoG2Hg2BFhER\nERERkUpBBbCIiIiIiIhUChW+AD579iwPPfTQTdvXr1/PwIEDb9p+7Ngx/P39GTp06B2db9asWaxc\nuRIAHx8fUlNTSU5O5l//+hcAJ0+e5NChQ3cUW0REREREKh+TyWSzP+VNpZgDXNyY+aK279mzhw4d\nOjB9+vQ7OteoUaNuih8YGEhgYCAASUlJ5Ofn065duzuKLyIiIiIiInem/JXsd1FiYiLLli1j+/bt\nPPfccwC8/fbbBAcH0717d4YMGcKVK1eA31brHDNmDF27diUsLIyNGzcCEB0dzaJFiwAwm83A/9/b\nvH37dhYvXkxMTAzTpk2jU6dOfPXVV5bzL1++nOHDh9/LSxYREREREak0KkUP8O0KCgri22+/JTU1\nlSlTpvDVV1+xYsUKtm7dipOTE08//TSxsbEMGTKE9957j7y8PD799FNSU1Pp2bMnjzzySLGxDcOg\nS5cudOvWjYYNGzJkyBAKCgrYvHmzZYh2UlIS/fr1u1eXKyIiIiIi5YBWgbYeFcC38NBDD7Fjxw7s\n7X+7Ta1bt+bHH38EYNeuXQwePBgAT09Pdu7cSbVq1UoUPywsjBEjRjBmzBgyMjL46quv6NKlS4li\nhIeHF7l93bp1JYojIiIiIiJS0VX4AthkMlmGIt8oPz8fwzAYOHAg58+fxzAM4uPjC7XJzs7m9ddf\nJyUlBYDMzEz8/PwASE9Pp0aNGpa2JS1+AVq1aoWDgwMpKSmcO3eOTp064ejoWOI4IiIiIiIi8scq\nfAHs6uqKYRicP38eLy8vy/ZTp05Rr149Jk+eXOyxS5cu5YcffiAuLg5HR0dmz57Nzz//bImbnp5u\naZuamkrNmjVLnF9YWBhbtmzh/Pnzxfbm3op6ekVEREREKjYNgbaeCr8IlqOjI71792bu3Llcu3YN\ngOPHjxMXF0dkZOQtj7148SIPPPAAjo6OnD17ll27dnH16lUAAgICiIuLA+DChQv07t2bjIyMP8zH\n3t6eS5cuWd6HhYWRlJTEZ599ZuldFhEREREREeur8AUwwLhx46hZsya9e/cmLCyMqVOnMmvWLBo3\nbnzL4/72t7+RkpJCSEgIM2bMIDo6mgMHDrBs2TIGDhxI7dq16dKlC//4xz8YO3ZsoR5mKPqbmi5d\nurBy5UpeeOEFAJo0aYKrqyudO3fGwcHBehctIiIiIiIihRjmoibIyj317LPPMmDAAB577LGyTkWk\nQrh8+XKpY7i4uFghE5Hbl5OTU+oYVatWtUImIiK2q127dlaJc+jQIavEuVc6d+5c1ikUa/fu3WWd\nQolUih5gW3b48GHOnTun4ldEREREROQuq/CLYNmyV155haNHj/Lmm2+WdSoiIiIiIiIVngrgMvT6\n66+XdQoiIiIiImLjtAq09agAFhERERERkTK3du1a3n//fQC8vLyYMGECDRs2ZObMmSQnJ2MymQgM\nDGTUqFF3fA4VwCIiIiIiIlKmvv/+e9588002bdrEfffdx8cff0x0dDQDBgzg0KFDbN68GbPZTGRk\nJFu3bqV79+53dB4VwCKV3IYNG6wSp1evXlaJYw1aCVfupdzcXKvEsbevWH+Ss7OzSx3D0dHRCpmI\nSEVSWacQmkwVf+3i//3vf/zpT3/ivvvuA+Dhhx/mrbfeIiEhgccff9zyd/Kvf/0rCQkJd1wAV/w7\nKSIiIiIiIjatZcuW/Pjjj3z77beYzWa2bt1Kx44dOXXqFA0aNLC0a9CgAd9///0dn6difd0sIiIi\nIiIi5Y6HhwcjR46kd+/eODs7U61aNWJiYnj66adxcHCwtHN0dCQrK+uOz6MCWERERERERO5IeHh4\nkdvXrVtXojhff/01ixYtYtu2bXh6erJp0yaGDh1KtWrVCk03ysrKwsnJ6Y7zrVBDoH18fAgKCiI0\nNJTg4GCeffZZzpw5Uya5REdHs2jRojI5t4iIiIiIVByGYdjsj7Xs37+fNm3a4OnpCUBISAjfffcd\nrq6unD592tLu9OnT/PnPf77j81SoHmDDMIiJicHDwwOAWbNmMXXqVBWiIiIiIiIid0FJe3qL06hR\nIz766CMyMjKoVasWO3bs4L777uPvf/87ixYtolevXhQUFLBy5UpGjx59x+epUAWw2WzGbDZb3j/8\n8MNs37692LZTp04lMTGRhg0b4u/vz65du4iJieHy5ctMmTKFzz//nIKCAoYOHWrp2j948CDTp08n\nOzsbFxcXxo8fT/PmzW+Z14kTJ5g0aRIZGRk4OjoyevRoOnXqBMDixYtZtWoV9vb2+Pv7M3bsWCvd\nDRERERERkfKhS5cufPXVV/Tr1w+TyYSzszPz5s2jdevWHD9+nN69e2MYBj179sTf3/+Oz1OhCuAb\n5ebmsnHjRgICAorcv3PnTvbs2UNycjI5OTn0798fd3d3AKZNm4adnR2JiYmkp6cTHh6Or68vdevW\nZeTIkSxcuJBWrVqxdetWRo8eTWJiYrF5mM1mRo8ezbBhwwgNDeXLL7/kmWeeYfv27Rw/fpy1a9ey\nadMm7O3tiYiIIDExkaCgoLtyT0REREREpPyx5lBjWzZ8+HCGDx9+0/YXX3yRF1980SrnqHAFcFRU\nFCaTibS0NDw8PBg6dGiR7Q4dOoS/vz+Ojo44OjoSFhbGwYMHAdixYwfvvfceAK6urnTr1o2tW7fS\nunVr6tSpQ6tWrQDo3r0748eP58yZM9SvX7/I85w5c4ZffvmF0NBQAJo3b069evX44osv2LdvH/7+\n/lSrVg2AmJiYQiuc3Q5rTToXERERERGp6CpcAXzjHOBDhw4RERFBXFwciYmJxMbGYhgGo0aNIjMz\nEy8vL8tx1ydbA2RmZjJy5Ejs7Owwm83k5OQQHBxMeno6NWrUKHQ+FxcXLl68yPz58zl27BiGYbB0\n6VLL/osXLxZ5TFpaGunp6ZZcAapWrWrNWyEiIiIiIiI3qHAF8I1zgNu1a0e9evU4fPgwERERRERE\nWPYdPnyYq1evWt5fuHDB8trDw4O3336bBx98sFDsgwcPkp6eXmjbpUuXcHNzY/r06UXm4+bmRkZG\nRqFtGRkZuLu74+rqWmjf9de1atW63ctVT6+IiIiISAVnMlWoh/eUqQp9J0+ePMmpU6d44IEHbtrn\n6+vLjh07yMnJITMzky1btlj2de3alRUrVgCQl5fHtGnT+Prrr/H19SUtLY3PP/8cgM2bN+Pl5UW9\nevWKzaF+/fp4eXkRHx8PwJEjR0hLS8PX15eAgAC2bdvG5cuXycvLY9iwYezdu9eat0BERERERET+\nPxWqB9gwDKKioixDl6tWrcrkyZNp3LjxTW27devGzp07CQkJoWHDhoSGhrJ//34AXnjhBSZPnkxw\ncDCGYdCpUye8vb0xmUzMmTOHSZMmkZ2dTe3atZk9e/Yf5jVr1iwmTpzIggULcHJyYu7cuTg6OtKy\nZUueeeYZevXqhYODA35+foSFhVn9voiIiIiIiAgY5hvHDFdiy5cv58CBA8yfP7+sUxG5pzZs2GCV\nOL169bJKHGvIzc0tdYySLkgnlZc1ft8A7OzsbCKGtWRnZ5c6hqOjoxUyEZGKZOvWrVaJ0717d6vE\nuVe6detW1ikUKykpqaxTKJEKPQT6Vk6cOEFAQACZmZnk5eWRlJRkWd1ZREREREREKp4KNQS6JHx8\nfAgPDyc8PBw7OzvatGnDgAEDyjotERERERERuUsqbQEMxT9oWURERERExFZoFWjr0Z0UERERERGR\nSkEFsIiIiIiIiFQKlXoItIhYb/XmpUuXljrGU089VeoYAFrcXu4lW1ox/OrVq1aJ4+TkVOoY1ljB\nOT8/v9QxwLZWxxaR0qlatWpZp1AmDMMo6xQqDPUAi4iIiIiISKWgAlhEREREREQqBQ2BFhERERER\nsWEaAm09FaoA9vHxoWHDhpa5PmazGcMwmD59Oi1atLinuURHR9OwYUOGDBlyT88rIiIiIiIiRatQ\nBbBhGMTExODh4VHWqYiIiIiIiIiNqVAFsNlsvu3VX81mM1OnTiUxMZGGDRvi7+/Prl27iImJ4fLl\ny0yZMoXPP/+cgoIChg4dSnh4OAAHDx5k+vTpZGdn4+Liwvjx42nevPktz3XixAkmTZpERkYGjo6O\njB49mk6dOgGwePFiVq1ahb29Pf7+/owdO7Z0N0FERERERCoUk0lLN1lLhSqAS2Lnzp3s2bOH5ORk\ncnJy6N+/P+7u7gBMmzYNOzs7EhMTSU9PJzw8HF9fX+rWrcvIkSNZuHAhrVq1YuvWrYwePZrExMRi\nz2M2mxk9ejTDhg0jNDSUL7/8kmeeeYbt27dz/Phx1q5dy6ZNm7C3tyciIoLExESCgoLu1W0QERER\nERGpNCpcARwVFVVoDrCbmxuxsbE3tTt06BD+/v44Ojri6OhIWFgYBw8eBGDHjh289957ALi6utKt\nWze2bt1K69atqVOnDq1atQKge/fujB8/njNnzlC/fv0i8zlz5gy//PILoaGhADRv3px69erxxRdf\nsG/fPvz9/alWrRoAMTExJX6e5PWe6d9bt25dieKIiIiIiIhUdBWuAC5uDvDy5cuJjY3FMAxGjRpF\nZmYmXl5elv2enp6W15mZmYwcORI7OzvMZjM5OTkEBweTnp5OjRo1CsV1cXHh4sWLzJ8/n2PHjmEY\nBkuXLrXsv3jxYpHHpKWlkZ6eXijXyvpgbxERERERKZ5WgbaeClcAFzcHOCIigoiICMv7w4cPc/Xq\nVcv7CxcuWF57eHjw9ttv8+CDDxaKcfDgQdLT0wttu3TpEm5ubkyfPr3I87q5uZGRkVFoW0ZGBu7u\n7ri6uhbad/11rVq1bnWJhainV0RERERE5PZU2tnUvr6+7Nixg5ycHDIzM9myZYtlX9euXVmxYgUA\neXl5TJs2ja+//hpfX1/S0tL4/PPPAdi8eTNeXl7Uq1ev2PPUr18fLy8v4uPjAThy5AhpaWn4+voS\nEBDAtm3buHz5Mnl5eQwbNoy9e/fexasWERERERGpvCpUD7BhGDfNATYM46beX4Bu3bqxc+dOQkJC\naNiwIaGhoezfvx+AF154gcmTJxMcHIxhGHTq1Alvb29MJhNz5sxh0qRJZGdnU7t2bWbPnv2Hec2a\nNYuJEyeyYMECnJycmDt3Lo6OjrRs2ZJnnnmGXr164eDggJ+fH2FhYda/MSIiIiIiUm5pFWjrMcy3\n+9ygCm758uUcOHCA+fPnl3UqIuXSjXPf79RTTz1V6hgAOTk5pY6hOflSHt04tac0nJycrBKntP4f\ne3ceV1Wd/3H8dS5roiBiiGk5U1pYiWVmmjQiEptSilqOCBM1jqaOmqb+NEoTxi13Sy0tKjTHNNxx\nAcuNasgcNU2nnDSXERcWVwyB+/vDB3dkhAK5rPf9fDzu48G593s+53POEM7nfj/ne/Lz860Sp/CL\ncRGp+bZv326VOJ06dbJKnMryzDPPVHUKJVq7dm1Vp1AmNvtVwuHDh/H39+fixYvk5eWRnJxsWd1Z\nREREREREap9a1QJdFt7e3oSHhxMeHo6dnR1t2rShX79+VZ2WiIiIiIhIEVoF2npstgAGGDJkCEOG\nDKnqNERERERERKQS2GwLtIiIiIiIiNgWm54BFhERERERqe60CrT1qAAWsXFXrlyxSpz/fdTY7bh+\n/boVMtE/EmK7qsvqzdZy7do1q8RxcXGxShwRqXpLliyxSpyatgq0WI/+X6KIiIiIiIjYBM0Ai4iI\niKD3ccYAACAASURBVIiIVGNaBdp6NAMsIiIiIiIiNqHWF8D+/v7s2bOnUo+ZlpZGYGBgpR5TRERE\nREREfp1aoCuI2hRERERERMQaVFtYT62fAS7Jzp078fPzo2vXrnz66ac89thj/Oc//wFg+fLlhISE\n0KVLF0aOHElubi4AFy5cYPjw4QQHB9OtWzcWLVr0m8fJzc1l/PjxBAcH07VrV6ZOnYrZbAbgwIED\nhIeHExwcTGRkJCdPnqy4ExYREREREbFxNlkAFxQUMHbsWOLi4tiwYQPHjh2zPGph9+7dzJs3j4SE\nBLZu3Uq9evWYPXs2ADNmzMDNzY1NmzaxdOlSli1b9pvt1R9++CFnzpxh48aNJCYmsnv3btavXw/A\nyJEjGTFiBJs2bSIgIIC4uLiKPXEREREREREbZpMt0EePHuX69ev4+voCEBkZSXx8PABffPEFISEh\nNGzYEIDnn3+eoUOHMnr0aHbs2MG7774LgJubG08//TSpqam0adOmxGNt376dl156CcMwcHJyIiws\njNTUVFq1akV2dnaRHP74xz+W+VzCw8OLfT8xMbHMsUREREREpPpRC7T12EQBXFBQQEhICIZh4OPj\nw/PPP4+rq6vlc09PT8vPly5dIjk5mdTUVADy8/PJy8sDIDMzEzc3N8tYV1dXzp07R0pKCjNmzMAw\nDCIiImjRooVlTGZmZpFjubq6kpGRQVZWFnXr1rW8bzKZcHR0tP7Ji4iIiIiICGAjBbDJZGLjxo2W\n7R9//JGrV69ats+dO2f52dPTkx49ejB69Ohb4jRs2JDs7Gy8vLwAyM7OpmHDhgQEBBAQEGAZl5aW\ndss+hQr3cXd3L/J+Xl4eZ86coUmTJmU6N830ioiIiIiIlI5N3gPcrFkz8vLy+OabbwBYtmyZpa3A\n39+f5ORkMjMzAUhJSWHx4sUA+Pn5sXz5cuDGzG5ycjKdOnX61WP5+fmxcuVKCgoKuHr1KmvXrsXP\nz4/f/e53NG7cmC1btgCwYsUK3njjjQo5XxERERERqbkMw6i2r5qm1s8AF/c/iqOjI+PHj2fMmDG4\nubnxwgsvYDKZMAyDBx98kAEDBhAVFYXZbKZBgwZMnDgRgOHDhzNhwgRCQkKws7NjwIABtGrV6leP\nX7i6c9euXTGZTISEhBAUFATA7NmzGTVqFDNmzMDT05NJkyZZ/wKIiIiIiIgIAIa58Jk8NiwnJ4c2\nbdrwzTffFLkvV8QWXLlyxSpxats97A4ODlWdgojNs9bfJxcXF6vEEZGq179/f6vEKc3jTKuT3r17\nV3UKJVqxYkVVp1AmNtkCDdCrVy+SkpIA2LBhA/fdd5+KXxERERERqXaqus1ZLdC1wLhx43jzzTeZ\nO3cudevWZcqUKVWdkoiIiIiIiFQgmy2A27Rpw5o1a6o6DREREREREakkNlsAi4iIiIiI1AQ1sdW4\nurLZe4BFRERERETEtmgGWGoEay1WXtu+PcvPzy93jNq4OurQoUPLHWPu3LlWyEREyqM6/X26fv26\nVeJohflb6d94KYvhw4dXdQpSw6kAFhERERERqcb0BY/1qAVaREREREREbIIKYBEREREREbEJtaoA\nPnXqFA899NAt769atYro6OhKz8fb25szZ85U+nFFRERERETkVrXuHuCS+uOrom9evfoiIiIiIlJe\nqiusp9YVwGVx6tQphgwZwqVLl+jYsSNnzpwhODiY7t278+233zJ58mQuXrxIgwYNeOutt7j77rsx\nm83Mnj2bLVu2YBgGrVu3Zvz48Tg7O98S/+ZVDT/++GOWL1+O2Wzm97//PXFxcbi7u5OVlcXYsWM5\ncuQILi4ujB49mo4dO1bmZRAREREREbEJtaoFuqymTp3KU089RUpKCk899RRffvklAFeuXGHQoEGM\nHDmSLVu2EBUVZVlyPSkpiZ07d7J69Wo2bNjAxYsX+fDDD3/1OHv37iU+Pp4lS5aQlJRE48aNmTlz\nJgAzZsygRYsWpKSkMGXKFEaOHGm1Ry2IiIiIiIjIf9l0Afztt98SGhoKQEBAAJ6engDs3r0bLy8v\nOnToAEBoaCjHjx8nPT2d7du306NHD5ycnDAMg/DwcFJTU4uNX9iqsH37doKCgnB3dwegV69eln22\nb99O165dAWjZsiWff/65nhEoIiIiIiIWJpOp2r5qmlrVAm0ymYp9mHp+fj6GYRAdHU16ejqGYZCU\nlMSFCxeoX7++ZVyjRo0AuHTpEsePH7cUx2azGScnJzIzM8nMzMTV1dWyj5ubGxkZGZw9e5Y//elP\nGIaBj48PU6ZMseSSmZlpiX3zPgBZWVlF4tWpU6dM5xweHl7s+4mJiWWKIyIiIiIiUtvVqgLY3d0d\nwzBIT0/Hy8vL8v6xY8do0qQJEydOLDK+bt26XLlyxbJ97tw5ADw9PbnvvvtYuXLlLcdo2LAh2dnZ\nlu3s7Gw8PDzw9PRk48aNRcYWzgD/7z5ZWVl4eHhYcs7KyuKuu+4CbtyX7OXlhZ2d3W1dAxERERER\nESlezZuz/hXOzs50796dOXPmWO6j/f7771m9ejWRkZG3jG/durWlaP3iiy8sBXDr1q05d+4c+/fv\nB+DEiROMHj0aAD8/P9auXcu1a9fIy8tj5cqV+Pn5FZtP4Qxwp06dSE5O5sKFCwAsX76czp07A+Dv\n78+qVasAOHLkCOHh4eTn55f6nBMTE4t9iYiIiIhI7WAYRrV91TS1agYYICYmhtmzZ9O9e3fgRrvx\nzJkzadGixS1jR40axciRI0lKSuIPf/gDjzzyCABOTk7MnTuX2NhYrl69ioODA8OGDQMgODiYH374\nwdJ63L59+2KLa/jvDLCPjw/9+/enb9++mM1mWrZsyYQJEyw5jBkzBn9/f+rWrcvMmTNxdHS06jUR\nERERERERMMzF3TRro3r16sWgQYPw9/ev6lTkf1jr17Qmfkv1a8rSLVCS2thuP3To0HLHmDt3rhUy\nEZHawlpPaNBCl7fSv/FSFgcPHrRKnIceesgqcSpLv379qjqFEi1ZsqSqUyiTWjcDXBbTpk0jJyeH\n8ePH8+9//5uffvqpxv3HICIiIiIitZu+4LEemy6Ao6OjGTNmDIGBgdjZ2TF+/PgiqzWLiIiIiIhI\n7WHTBfCdd97JBx98UNVpiIiIiIiISCWw6QJYRERERESkulMLtPXUqscgiYiIiIiIiJREBbCIiIiI\niIjYBLVAS41grbaPq1evljtGnTp1rJCJddTGRxhZgx5hJFI+te1vpTXo8UUVR62dUhZ/+tOfrBJn\n9+7dVolTWfTfifVoBlhERERERERsggpgERERERERsQk20wLt7e1Ns2bNsLOzo6CggHvuuYc33niD\npk2bVmoeY8aMISQkBD8/v0o9roiIiIiI1ExqgbYemymADcMgISEBT09PAGbOnElcXBwLFy6s1Dym\nTp1aqccTERERERGRG2ymBdpsNmM2my3b7du359SpU8WOTUtLo0+fPkyaNImAgAB69erF/v37iYqK\nwtfXl3nz5lnGfvzxx3Tt2pXQ0FAGDx5MZmYm27dvJywsrEjM7t27s2vXLiIjI1m3bh0A3377Lb16\n9SIwMJA+ffpw4sSJCjhzERERERERARsqgG+Wm5vL2rVr8ff3L3HMwYMHCQwMJCUlBcMwiI2NZfHi\nxcTHx/Puu++Sm5vL3r17iY+PZ8mSJSQlJdG4cWNmzZrFk08+ydmzZy0F9okTJzhz5gxPPvmkJf6V\nK1cYNGgQI0eOZMuWLURFRTF8+PAKP3cREREREalZDMOotq+axqYK4KioKEJCQvD19eXAgQOEh4eX\nONbNzY22bdsC0Lx5cx5//HEcHR1p0aIFBQUFZGVlsX37doKCgnB3dwegV69epKam4uDggJ+fH59/\n/jkAW7duJSAgAJPpv5d79+7deHl50aFDBwBCQ0M5fvw46enpFXX6IiIiIiIiNs1m7gEGitwDvHv3\nbiIiIli9ejWbN29myZIlGIbBiBEjcHV1xcXFxbKfnZ1dkecZmkwm8vPzyczMpFGjRpb33dzcyMjI\nACAoKIiEhAQiIyNJSUlh8ODBRXK5dOkSx48fJzQ0FLjRou3k5ERmZiZeXl6lPqeSivjExMRSxxAR\nEREREbEFNlUA33wPcNu2bWnSpAnffvstERERREREWD5LS0srVbyGDRuSnZ1t2c7OzsbDwwMAX19f\nxo0bx88//8yxY8do3759kX09PT257777WLlyZXlOSUREREREarma2GpcXdlUAXyzo0ePcuzYMe69\n994y71tYSHfq1Ilhw4YxePBg3Nzc+Pvf/255vJGjoyMdO3bkrbfeokuXLrf80rZu3Zpz586xf/9+\nfHx8OHHiBPPmzWPatGllykUzvSIiIiIiIqVjMwWwYRhERUVhZ2dnaTeeOHEiLVq0KNW+xW37+PjQ\nv39/+vbti9lspmXLlkyYMMEyLjg4mKFDh/Lhhx/esq+TkxNz584lNjaWq1ev4uDgwLBhw8p/oiIi\nIiIiIlIsw3xzX7BILXf16tVyx7j5fnARkdpIfytFpLoqXKS2vHbv3m2VOJXlpZdequoUSvT+++9X\ndQplYlOrQIuIiIiIiIjtUgEsIiIiIiIiNsFm7gEWERERERGpibQKtPVoBlhERERERERsggpgERER\nERERsQlqgRYREREREanG1AJtPSqAxaZY47EcejyIiNR2+hslItXVqVOnqjoFqeHUAi0iIiIiIiI2\nQTPAIiIiIiIi1ZhaoK3HZgpgb29vmjVrhp2dHQBmsxnDMJg6dSqtWrWqtDzGjBlDSEgIfn5+lXZM\nERERERERsaEC2DAMEhIS8PT0rNI8pk6dWqXHFxERERERsVU2cw+w2WzGbDaXamxaWhp9+vRh0qRJ\nBAQE0KtXL/bv309UVBS+vr7MmzfPMvbjjz+ma9euhIaGMnjwYDIzM9m+fTthYWFFYnbv3p1du3YR\nGRnJunXrAPj222/p1asXgYGB9OnThxMnTljvhEVEREREpFYwDKPavmoamymAy+rgwYMEBgaSkpKC\nYRjExsayePFi4uPjeffdd8nNzWXv3r3Ex8ezZMkSkpKSaNy4MbNmzeLJJ5/k7NmzllXqTpw4wZkz\nZ3jyySct8a9cucKgQYMYOXIkW7ZsISoqiuHDh1fV6YqIiIiIiNR6NlUAR0VFERoaSmhoKCEhIfTr\n16/EsW5ubrRt2xaA5s2b8/jjj+Po6EiLFi0oKCggKyuL7du3ExQUhLu7OwC9evUiNTUVBwcH/Pz8\n+PzzzwHYunUrAQEBmEz/vdy7d+/Gy8uLDh06ABAaGsrx48dJT0+vqNMXERERERGxaTZzDzBQ4j3A\nS5cuZcmSJRiGwYgRI3B1dcXFxcXyuZ2dXZFnIppMJvLz88nMzKRRo0aW993c3MjIyAAgKCiIhIQE\nIiMjSUlJYfDgwUWOeenSJY4fP05oaChwo0XbycmJzMxMvLy8Sn1O4eHhxb6fmJhY6hgiIiIiIlJ9\n1cRW4+rKpgrgku4BjoiIICIiwrKdlpZWqngNGzYkOzvbsp2dnY2HhwcAvr6+jBs3jp9//pljx47R\nvn37Ivt6enpy3333sXLlyrKehoiIiIiIiNwGmyqAraWwkO7UqRPDhg1j8ODBuLm58fe//93yeCNH\nR0c6duzIW2+9RZcuXW751qZ169acO3eO/fv34+Pjw4kTJ5g3bx7Tpk0rUy6a6RURERERESkdmymA\nDcMgKirqlucA/+/sb0n7Frft4+ND//796du3L2azmZYtWzJhwgTLuODgYIYOHcqHH354y75OTk7M\nnTuX2NhYrl69ioODA8OGDbPCmYqIiIiISG2iFmjrMcylfTaQiABw9erVcse4+Z5yERERESmdxo0b\nWyXO6dOnrRKnsrz88stVnUKJFixYUNUplIlNrQItIiIiIiIitstmWqBFRERERERqIrVAW49mgEVE\nRERERMQmqAAWERERERERm6AWaBERERERkWpMLdDWoxlgERERERERsQmaARYpIz3CSERERKRqpKen\nV3UKUsOpABYREREREanG1AJtPWqBFhEREREREZtg0wWwv78/e/bsqbTjpaSk8Nprr1Xa8URERERE\nROS/1AJdiQICAggICKjqNEREREREpAZRC7T12PQMcEn8/f1ZsmQJ4eHh+Pr6kpyczMSJE3n66afp\n06cPly5dAuBf//oXf/zjHwkJCaFHjx6kpqZiNpvx9fXl+++/t8T76KOPGDFiBKtWrSI6OhqAS5cu\nMXr0aIKCgnj66adJTEysknMVERERERGxFSqAS/Djjz+SmJjIyy+/zOjRowkNDSU5OZn8/Hy2bNmC\n2WxmxIgRREZGsnHjRmJjYxkxYgQ5OTkEBgby+eefW2KlpKQQGhoK/Pfbm8mTJ2NnZ8fmzZv59NNP\nmTdvHkeOHKmScxUREREREbEFKoBLUNiqfP/99+Ps7Ezbtm0BaN68OWfPnuXkyZOcP3/eUtg+/PDD\nNGnShO+++47AwEC2bt0KQGZmJv/617/4wx/+UCT+tm3biIqKAsDd3Z2nn36aLVu2VNbpiYiIiIiI\n2Bybvwe4oKCAkJAQDMPAx8eHKVOmAODi4gKAyWQq8txXOzs78vPzyczMxNXVtUisevXqkZGRQXBw\nMGfPniU9PZ3U1FQ6deqEo6NjkbEXL15k+PDh2NnZYTab+eWXXwgODi5z/uHh4cW+r5ZqEREREZHa\nQfcAW4/NF8Amk4mNGzeWeT8PDw+ys7OLvJednU3Dhg0xmUx06dKFrVu3smvXLnr37n3L/p6enrzz\nzjs0b978tnMXERERERGR0rP5Avh2NW3aFC8vL5KSkggNDWXPnj1kZGTg4+MDQFBQEPHx8Rw+fJi5\nc+fesn+XLl1YtmwZr7/+Onl5ebz11lt0796dli1blikPzfSKiIiIiIiUjk3fA1xSK0FpWwxmzpzJ\nkiVLCA0NZdKkScyZMwdnZ2cA2rdvz8GDB/H19cXBweGWfYcNG8alS5cIDg4mLCyMgoICHnjggds/\nGRERERERqZUMw6i2r5rGMJvN5qpOQkRERERE5LdYq+CqaSXQsGHDqjqFEs2ZM6eqUygTm54BFhER\nEREREduhe4BFRERERESqsZrYalxdaQZYREREREREbIIKYBEREREREbEJaoEWERERERGpxtQCbT2a\nARYRERERERGboBlgERERKeKrr74qd4wOHTpYIRMRkaIGDhxY1SlIDacCWEREREREpBpTC7T1qAVa\nREREREREbIIKYBEREREREbEJNlMAnzp1ioceeuiW91etWkV0dHSl5XHmzBnCwsIq7XgiIiIiIlKz\nGYZRbV81jc0UwFBy73xl/g/XqFEj1q1bV2nHExERERERkRtsqgAui7FjxzJr1iyioqJ48sknmTVr\nFitWrCAsLIwuXbpw4MABAC5cuMDw4cMJDg6mW7duLF68GIDhw4fz4YcfWuIdPnyYp556ihMnThSZ\niX777bcJDg7G39+fSZMmYTabK/U8RUREREREbIUK4F+xc+dOFi1axEcffcTixYvJyspi3bp1BAYG\nkpCQAMCMGTNwc3Nj06ZNLF26lE8++YQ9e/YQFBTE1q1bLbGSk5MJDg7GZDJZZpxXr17N5s2b+eyz\nz0hJSeH48eN88sknVXKuIiIiIiJSPVV1m7NaoG1Ex44dcXJyokWLFhQUFNClSxcAHnjgAc6ePQvA\njh076Nu3LwBubm48/fTTpKam4ufnx/fff8/FixeBGwVwaGhokfjbtm2jZ8+euLi4YDKZ6NWrF1u2\nbClTjuHh4cW+REREREREpCibeQ6wyWQqtr04Pz8fwzCIjo4mPT0dwzBISkoCwMXFpcj+d9xxh+Xn\n/Px8ADIzM3Fzc7OMc3V15dy5c9xxxx08+eSTbNu2jUcffZRLly7x6KOPcurUKcvYS5cu8cEHH/Dp\np59iNpspKCigQYMGFXL+IiIiIiIits5mCmB3d3cMwyA9PR0vLy/L+8eOHaNJkyZMnDjxtuI2bNiQ\n7OxsS8zs7GwaNmwIQFBQEMnJyWRmZhIUFHTLvp6envj7+xMREXFbxwZITEy87X1FRERERKT6M5nU\nuGstNnMlnZ2d6d69O3PmzOH69esAfP/996xevZrIyMjbjuvn58fy5cuBG7PBycnJdOrUCYDOnTvz\nz3/+k61btxISEmLZp3AmukuXLqxdu5Zr164BsHz5clavXn3buYiIiIiIiEjJbGYGGCAmJobZs2fT\nvXt34MY9uzNnzqRFixa/uW9JN3gPHz6cCRMmEBISgp2dHQMGDKBVq1bAjRbqhx56iB9++IHWrVvf\nEisgIIAjR47Qo0cPDMPgnnvu4W9/+1t5T1NERERERESKYZj13B0RERG5yVdffVXuGB06dLBCJiIi\nRb388stWibNgwQKrxKksY8aMqeoUSjR16tSqTqFMbKYFWkRERERERGybCmARERERERGxCTZ1D7CI\niIiIiEhNU9J6RFJ2mgEWERERERERm6ACWERERERERGyCWqBFpNbJz88vdww7OzsrZFL7/PLLL+WO\n4eTkZIVMqg9r/L5B9fqds8YKzuvWrSt3jLCwsHLHEJHa5YknnqjqFKqEWqCtRzPAIiIiIiIiYhNU\nAIuIiIiIiEiVO3v2LC+++CL+/v48++yz7N69G4Dp06cTHBxMaGgoM2fOLNcx1AItIiIiIiJSjdlK\nC/T//d//0alTJz744APS0tJYunQpZ8+eZffu3axfvx6z2UxkZCRbtmwhMDDwto5RLWaAvb29CQoK\nIjQ0lODgYP7yl79w8uTJSs9jzJgxbNu2zWrxVqxYYfk5OjqaQ4cOlXq8iIiIiIiIrUhPT+fgwYP0\n69cPgHbt2jFr1iw2bdpEjx49sLe3x8HBgWeeeYZNmzbd9nGqRQFsGAYJCQkkJSWxadMmvL29iYuL\nq/Q8pk6dip+fn1Vi5efnM23aNMt2fHw8LVu2LPV4ERERERERW3H48GGaNGliaXeOjIzk0KFDHD16\nlHvuuccy7p577uGnn3667eNUiwLYbDZjNpst2+3bt+fUqVPFjk1LS6NPnz5MmjSJgIAAevXqxf79\n+4mKisLX15e3334bgFWrVhEdHW3Z7+bttLQ0wsPD6datG127dmXz5s0AREZGWlat3LFjB926dSM4\nOJiBAwdy4cIFALZu3UpYWBjBwcH07NmTw4cPF8lr+PDhjBo1ihdffJFLly4RGhrKyZMn8ff3Z8+e\nPeTn5xMTE0NwcDBBQUEMHTqUy5cvFxlf0rmLiIiIiIjtMQyj2r7Cw8OLfZXVxYsX+eGHH2jXrh2b\nNm3imWeeYciQIfzyyy84Ojpaxjk7O5OTk3Pb17JaFMA3y83NZe3atfj7+5c45uDBgwQGBpKSkoJh\nGMTGxrJ48WLi4+NZuHAhubm5wK298oXb06ZNY9y4caxfv54FCxaQnJxcZFxOTg6jRo1izpw5bNq0\niWbNmjF37lzy8/MZN24cf/vb39i0aRP+/v5FZm0PHTpE3759eeutt5g0aRL29vYkJSXRtGlTy5hd\nu3Zx8uRJNm3axObNm2nevDn79u0rMr5Jkyblvo4iIiIiIiI1Rb169bjzzjvp3LkzAL179+bChQuc\nPn3aUt/BjVqtTp06t32carMIVlRUFCaTiYyMDDw9PXn55ZdLHOvm5kbbtm0BaN68Oe7u7jg6OtKi\nRQsKCgrIysr61WN5eHiwevVqGjRowL333sv06dOLfL5nzx7uuusu7rvvPgBGjRoF3HhG45dffml5\nVuNjjz3G6tWrLfs5OzvTrl27Xz22u7s7//73v0lOTsbX15ehQ4cC3Pasb0nfriQmJt5WPBERERER\nkdKyVt1x1113ceXKlSLvmUwm/Pz8+Pnnny3PqP/5558tddrtqDYzwAkJCWzcuJG0tDQmTJhAREQE\n58+fZ+nSpYSEhBAaGkpKSgoALi4ulv3s7OyKfANgGAb5+fm/eqzJkyfj7OxMdHQ0QUFBbNmypcjn\nWVlZ1KtXz7Jtb2+Pvf2N7wo++ugjnnnmGUJCQhg3bhwFBQWWcfXr1//N8/Tx8eH1118nISGBjh07\n8uqrr3L58uXf3E9ERERERGxTVbc5/9rLWh544AE8PT0tCwNv3LgRNzc3wsLCWL58OTk5OVy5coXl\ny5fTrVu32z5OtZkBvvke4LZt29KkSRO+/fZbIiIiiIiIsHyWlpb2q3EK/0cwmUxFCuHCe3gBGjRo\nQExMDDExMaSmpjJkyBCeeuopy+fu7u5FZpGvXbvGhQsX+M9//sPixYv57LPPaNy4MV9++SWvv/56\nmc81MDCQwMBALl68yNixY1m8eDG9e/cucxzQTK+IiIiIiNQOc+bM4f/+7/9477338PDwYO7cubRs\n2ZKDBw/SvXt3DMMgLCysXAsXV5sC+GZHjx7l2LFj3HvvvWXet7CQ9vT05OjRo+Tm5pKfn8/mzZu5\n4447yMvLIzo6mpkzZ3LnnXfy4IMP4ujoiMn038nwxx57jPPnz3PgwAEefvhh5s+fT3Z2Nn/4wx/w\n8PDAy8uLnJwcVq1aVeIN2Pb29hQUFHD16tUiM9SJiYmkp6czaNAgXF1duffeezEMwzL+ypUrRWa4\nRUREREREbMF9991X7KNhX3nlFV555RWrHKNaFMCGYRAVFYWdnR1msxknJycmTpxIixYtSrVvcdtP\nPPEErVu3Jjg4mCZNmhAQEEBqair29vb07t2bF154wTJt//rrr+Pk5GTZ19nZmXnz5vHqq68C8Lvf\n/Y4pU6ZQp04dli1bRkBAAF5eXowbN479+/czdOhQy/OqCnl6etKmTRs6d+7MwoULLbG7dOnCuHHj\nCAoKwt7enmbNmjFlyhTq1atHmzZt8Pf359133+WRRx4p93UVEREREZGaz5qtxrbOMN/ceywiUgv8\n1joApVG42J0U9csvv5Q7hpOTkxUyqT6s8fsGte93rvCxguURFhZmhUxEpDb58MMPrRLnhRdeqB6W\nzgAAIABJREFUsEqcynI7t11WltjY2KpOoUyqzSJYIiIiIiIiIhWpWrRAi4iIiIiISPHUAm09mgEW\nERERERERm6ACWERERERERGyCWqBFRERERESqMbVAW48KYBGpdbS4fcWxxgrO165dK3cMZ2fncsew\nFmut3lzbros1VnD+6quvrJAJdOjQwSpxRKTqXb16tapTkBpOLdAiIiIiIiJiEzQDLCIiIiIiUo2p\nBdp6NAMsIiIiIiIiNqFaFMDe3t4EBQURGhpKaGgoISEhhIaG8t1331VqHmPGjGHbtm1Wi7dixQrL\nz9HR0Rw6dKjU40VERERERMS6qkULtGEYJCQk4OnpWaV5TJ061Wqx8vPzmTZtGr179wYgPj6+TONF\nREREREQATKZqMW9ZK1SLK2k2m0u9amtaWhp9+vRh0qRJBAQE0KtXL/bv309UVBS+vr68/fbbAKxa\ntYro6GjLfjdvp6WlER4eTrdu3ejatSubN28GIDIyknXr1gGwY8cOunXrRnBwMAMHDuTChQsAbN26\nlbCwMIKDg+nZsyeHDx8uktfw4cMZNWoUL774IpcuXSI0NJSTJ0/i7+/Pnj17yM/PJyYmhuDgYIKC\nghg6dCiXL18uMv7UqVPWubAiIiIiIiJiUS0K4LI6ePAggYGBpKSkYBgGsbGxLF68mPj4eBYuXEhu\nbi5w683ihdvTpk1j3LhxrF+/ngULFpCcnFxkXE5ODqNGjWLOnDls2rSJZs2aMXfuXPLz8xk3bhx/\n+9vf2LRpE/7+/kybNs2y36FDh+jbty9vvfUWkyZNwt7enqSkJJo2bWoZs2vXLk6ePMmmTZvYvHkz\nzZs3Z9++fUXGN2nSpKIunYiIiIiIiM2qFi3QAFFRUZZnKZrNZjw8PFiyZEmxY93c3Gjbti0AzZs3\nx93dHUdHR1q0aEFBQQFZWVm/eiwPDw9Wr15NgwYNuPfee5k+fXqRz/fs2cNdd93FfffdB8CoUaOA\nG896/PLLLy15PvbYY6xevdqyn7OzM+3atfvVY7u7u/Pvf/+b5ORkfH19GTp0KMBtz/qGh4cX+35i\nYuJtxRMREREREamtqk0BXNI9wEuXLmXJkiUYhsGIESNwdXXFxcXF8rmdnR116tSxbBuGQX5+/q8e\na/LkycyfP5/o6GicnZ0ZOXIkgYGBls+zsrKoV6+eZdve/r+X6aOPPmL16tVcv36dX375pcgsc/36\n9X/zPH18fHj99ddJSEhgzJgx+Pv7M2HChN/cT0REREREbJMeg2Q91aYALuke4IiICCIiIizbaWlp\nvxqn8JfDZDIVKYQL7+EFaNCgATExMcTExJCamsqQIUN46qmnLJ+7u7sXmUW+du0aFy5c4D//+Q+L\nFy/ms88+o3Hjxnz55Ze8/vrrZTtRIDAwkMDAQC5evMjYsWNZvHjxbS9+pZleERERERGR0qmR9wD/\nmsJC2tPTk6NHj5Kbm0tOTo5loau8vDwiIyM5d+4cAA8++CCOjo5FVlZ77LHHOH/+PAcOHABg/vz5\nvPPOO2RkZODh4YGXlxc5OTmsWrWKnJycYvOwt7enoKCAq1evFnk/MTGR+fPnA+Dq6sq9996LYRiW\n8VeuXLHuBRERERERERGgmswAG4Zxyz3AhmHcMvtb0r7FbT/xxBO0bt2a4OBgmjRpQkBAAKmpqdjb\n29O7d29eeOEFDMPAMAxef/11nJycLPs6Ozszb948Xn31VQB+97vfMWXKFOrUqcOyZcsICAjAy8uL\ncePGsX//foYOHUq/fv2K5OHp6UmbNm3o3LkzCxcutMTu0qUL48aNIygoCHt7e5o1a8aUKVOoV68e\nbdq0wd/fn3fffZdHHnmk/BdWRERERERqPLVAW49hLu3zh0REaoi8vLxyx7j53n+xrmvXrpU7hrOz\nsxUyqV50XW711VdfWSVOhw4drBJHRKpeYSdleQ0aNMgqcSpLXFxcVadQopiYmKpOoUxqXQu0iIiI\niIiISHE0xSEiIiIiIlKNqQXaejQDLCIiIiIiIjZBBbCIiIiIiIjYBLVAi4iIiIiIVGNqgbYeFcAi\nUutoBefqzRorFVvrmekuLi5WiWMNui638vHxqeoURKSa2bFjh1Xi1LRVoMV61AItIiIiIiIiNkHT\nJCIiIiIiItWYWqCtRzPAIiIiIiIiYhOqbQHs7+/Pnj17Ku14KSkpvPbaa1aLt3//fn744QcAli5d\nyty5c0s9XkRERERERKyvXC3Qubm5XLlyBXd3d2vlU2UCAgIICAiwWrzPPvuMxx57jPvvv5+IiIgy\njRcRERERESmkFmjrKVUBnJubS1xcHI8++ig9evQA4O233+bdd98lLy8PX19fZs2aRd26dSs0Wbgx\nM/ziiy+SmJjI2bNnGT9+PF999RU7d+6kQYMGLF68mHr16uHt7c327dtp1KgRgGW7Xr16jB49mp9+\n+onr16/ToUMHxo8fz9q1a1m7di3x8fFkZWUxduxYjhw5gouLC6NHj6Zjx45kZGQwZswYTp06xfXr\n1+nXrx8vvPCCJa+ePXuyfv16unXrxpo1a/jiiy/IzMzk8uXLpKenExcXx8aNG5k/fz75+fk4ODjw\n2muv8dNPPxUZXxhTRERERERErKdULdCzZs1i8+bNeHp6ArB7927efvttnnjiCcaMGcOPP/7IO++8\nU6GJ3uzHH38kMTGRl19+mdGjRxMaGkpycjIFBQVs2bIFuPVbksLtVatW4erqSlJSEps3b8bOzo4f\nf/yxyJgZM2bQokULUlJSmDJlCiNHjuT69essWLCAe+65h40bNxIfH8+MGTM4c+aM5Rhnzpxh48aN\nDB48mFatWjF69GhLMVsYe+LEiSxatIikpCTGjx/PF198QZ8+fWjVqhWjRo1S8SsiIiIiIlJBSjUD\nvHnzZl555RU6duwIQGJiIvXr12fBggU4ODjg4eHB3LlzGTNmTIUmW6iwVfn+++/H2dmZtm3bAtC8\neXPOnj0LgNlsLrJP4baHhwd79+4lNTWVxx9/nPHjxwNw6NAhy9jt27ezaNEiAFq2bMnnn3+Og4MD\nMTEx5OfnA3D33Xdz5513cuLECcssc+fOnYs95s0aNmzIsmXLeP7552nTpg1t2rQp17UIDw8v9v3E\nxMRyxRURERERkepBLdDWU6oC+Pz583h7e1u2d+zYQefOnXFwcADgnnvusRSe1lRQUEBISAiGYeDj\n48OUKVMAcHFxAcBkMlGnTh3LeDs7O0uBWpLg4GAuXrzInDlzOHr0KM8888wthXtWVhaurq6W7cJj\n7N+/n5kzZ3L69GlMJhPnzp0rUuS6ubn95jnNnz+f+fPnEx4ezl133cW4ceMsBbyIiIiIiIhUnFIV\nwPXr1+f8+fMAfPfdd5w/fx4/Pz/L5xkZGdxxxx1WT85kMrFx48bb3regoACACxcuFPnW5LnnnuO5\n557j7Nmz/PWvf2XNmjXY2//3Uri7u5OVlcVdd90FwKlTp2jUqBGjRo3ixRdf5PnnnwfgD3/4Q5nz\nuvvuu5k8eTJwox17xIgR7Nix47bOETTTKyIiIiIiUlqluge4Xbt2zJkzhyVLlhATE4OHh4elAL52\n7RoJCQn4+PhUZJ5l5unpyeHDh4EbKyybTDdOdf78+Xz22WeWMU2bNr2lpcDf359Vq1YBcOTIEcLD\nw8nPzycrK4sHH3wQuFG8Xrt2jatXrxZ7fAcHBy5evFjkvczMTF588UUuX74MgI+PjyWv4saLiIiI\niIgYhlFtXzVNqQrgkSNH4uDgQFxcHCdOnGDKlCk4OTkB8Oabb7J3717++te/WjWxki5maS/y8OHD\nGT9+PD169MDFxcWyQvWzzz7LmjVrCAkJITQ0FEdHR5599tki+44aNYrTp0/j7+/PiBEjmDlzJk5O\nTgwbNozBgwfz7LPPkpOTw/PPP09MTAwnTpy4Ja+AgACmT5/O1KlTLe81aNCAp556il69etGtWzde\nffVVJk2aVOJ4ERERERERsR7DXNxKTSW4cOECd9xxB46Ojpb3Dhw4QMOGDfHy8qqQBEVERP7XlStX\nrBKncE2J2qK2XZfadj4iUn59+vSxSpy///3vVolTWaZNm1bVKZRo9OjRVZ1CmZTqHuBCxS3y9PDD\nD1stGRERERERESmqJrYaV1clFsD+/v5lutCGYZCSkmKVpERERERERESsrcQCuF27dvqmQURERERE\nRGqNEgvgwmfuioiIiIiISNUpfHKMlF+Z7gE+deoU+/bt4+zZs4SFheHh4cHly5ctKyyLiIiIiIiI\nVFelKoDz8vJ48803+eyzzygoKMAwDNq3b4+Hhwfz5s1j//79LFq0SIWwiIhUCq3qW7zadl2q061Y\n6enpVomjp2aIlE9+fn5VpyA1XKnm0hcuXMjatWsZNGgQiYmJ3PzkpODgYE6cOMH8+fMrLEkRERER\nERFbZRhGtX3VNKUqgNesWcPgwYMZMmQIDz74YJHPHn30UYYOHcqGDRsqJEERERERERERayhVAXz6\n9GnatGlT4ufNmzcnIyPDakmJiIiIiIiIWFupCmB3d3eOHj1a4ueHDh2iQYMGt5XAqVOneOihh255\nf9WqVURHR99WzNtx5swZwsLCrBYvIyODzz//HID9+/fz5z//udTjRUREREREClV1m7PNtUD7+/sz\ne/Zsdu3aZXnPMAxyc3NZvXo106dPJyAg4LaTKOnCVeYFbdSoEevWrbNavK+//tpS0Pr4+LB48eJS\njxcRERERERHrK9Uq0CNHjuTgwYP079+fOnXqABAVFcXly5fJz8/n4Ycf5pVXXqnQRAuNHTsWT09P\n/vnPf3LkyBF69+5N06ZN+fjjj7l69Spz5szh4YcfJjIykueee84yq3vz9qxZs9i8eTNwYzXGt956\ni9zcXAIDAzl48CAAkydPJiUlBQcHB3r37s1LL72E2Wxm4sSJfPXVV+Tl5dGmTRsmT56MnZ0dY8eO\nxc3Nja+++opu3brx/vvvU1BQQE5ODs8//zwxMTFs2bKFH374gTfeeIPLly9z/fp1oqKiePTRR4mN\njbWMnzFjRqVcSxEREREREVtSqgLY1dWV5cuXs3nzZnbt2sXZs2cBaNy4MR06dCAoKAg7O7sKTfRm\nO3fuZNmyZRw/fpzu3bszbNgw1q1bx9SpU0lISGDq1Kkl7nvkyBE2bdrExo0bMZlMLF26lC+//JK2\nbdtaZpzXrFnDgQMHSE5O5urVqzzzzDO0a9eO06dPs2fPHpKSksjLy6NHjx4kJSVZiuyvv/6alStX\n4uDgwC+//MKZM2eIjY0lLS3NEvudd96hT58+dO/enezsbGJiYnjuuefo16+fZbyIiIiIiEihmthq\nXF2VqgAGsLOzIzQ0lNDQ0IrMp1Q6duyIk5MTLVq0oKCggC5dugDwwAMPsGbNml/dt169emRnZ7Nm\nzRq6dOlCREQEcONe5EI7duwgKCgIk8lE3bp1SUpKwtnZmVatWuHv74/JZMLR0ZFWrVpx4sQJy34d\nOnTAwcHhV4/v4eHBli1buP/++3nwwQd5++23b/cyABAeHl7s+4mJieWKKyIiIiIiUtuUugA+d+4c\n69at4+DBg2RnZ2MYBh4eHvj4+NC1a1fq169/WwmYTKYizxUulJ+fj2EYREdHk56ejmEYJCUlAeDi\n4lJk/zvuuMPy8289HLtRo0bMmzeP999/n9jYWNq1a8ebb75ZZEx2djaurq6WbWdnZwAyMzOJi4vj\n4MGDmEwmMjIyiIqKsoxzc3P7zfMdNWoUCxcuZPjw4eTm5vKXv/yFvn37/uZ+IiIiIiIiUj6lKoD/\n8Y9/MHDgQHJycnBycqJ+/fqYzWaysrJYs2YNc+fOZdGiRfj4+JQ5AXd3dwzDID09HS8vL8v7x44d\no0mTJkycOLHMMeHGjPXNxfDFixctP7dr14527dpx7do1pkyZwvTp0xk+fLjl8/r165OVlWXZzsjI\nwMnJidmzZ+Pg4MCGDRuwt7fn1VdfLXNed9xxB6+88gqvvPIKBw4c4KWXXqJjx463dY6gmV4RERER\nkdpOLdDWU6pVoCdPnkzTpk1Zvnw5e/fuZfv27ezYsYN9+/axdOlSPD09b7tQdXZ2pnv37syZM4fr\n168D8P3337N69WoiIyNvKybAnXfeyb/+9S8A/vnPf3Ls2DEAUlNTmThxImazGWdnZ7y9vS2/UIUz\n0V26dGH9+vXk5uZy9epV+vbty5EjR8jIyOD+++/H3t6ew4cPs2fPHq5evVrs8e3t7YsU3YUGDhzI\nkSNHgBvPT3Z1dcUwDOzt7blw4cJtn6+IiIiIiIj8ulIVwD/99BPDhg2jdevWRb59MJlMPPbYYwwd\nOpQffvjhtpOIiYnBzc2N7t2707VrV+Li4pg5cyYtWrT4zX1L+jYkOjqaL774gq5du7J27Vp8fX0B\nePzxx8nJySEoKIiwsDA2btzI0KFDi8QKDQ3F19eXoKAgwsPD6d27N4888gjR0dEsW7aMrl278skn\nnzB27FhWrlxpWVH6Zh07duTrr7+md+/eRd6PjIxk5MiRdO3alZ49exIREcE999xDx44d+cc//nHL\neBEREREREbEOw1zcDbj/w9/fn/Hjx9OpU6diP9+5cyevv/4627Zts3Z+IiIiYqNK6rIqq8JHOJZH\nenq6FTKhyO1eIlJ21posWrFihVXiVJa5c+dWdQolKpxMrClKNQPcr18/li1bZmlRvllBQQFLliwp\nshiUiIiIiIiISHVT4iJY//t4nlOnTtGlSxc6duxIo0aNMAyD8+fPk5qaiouLCyZTqWppERERERER\nkSpR6gK40KpVq4p9f+rUqbzwwgtWSUpERERERERu0CrQ1lNiAbx169bKzENERERERESkQpVYADdp\n0qTUQX788UcWLlzIjBkzrJKUiIiIiIiIiLWVWAD/r19++YV9+/Zx+vRpbl44Oj8/n23btrFz584K\nSVAEbvyeWUNxC7mVlbOzsxUykYpUisXtf5NajaS0Ll++bJU4devWtUoca7DG31xrrA1ijdWbrcVa\nqzfr75OI3A79d289pSqAjx07Rv/+/Tl58iRmsxnDMCx/wAt/Dg8Pr9BERURERERERMqjVAXw9OnT\nycvL48033+Tuu+8mOjqa2NhYnJyc+OSTT+jYsSN//etfKzpXERERERERkdtWqgJ47969vPbaa4SE\nhFjea9WqFd7e3nTr1o0//elPrFy5kl69elVYoiIiIiIiIrZILdDWU6obdLKzs2ncuLFl297enpyc\n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\nitwD7OHhwZIlS24Zt337doKCgnB3dwegV69eDBo0qNiY9erVw8/PD4CWLVuyYsUKALZt28aAAQOw\nt7fH3t6eZ599li1btlgK4M6dO5c5//Dw8GLfT0xMLHMsERERERGR2qxUBfA333xTqmCPP/54uZKp\nCiXdA7x06VKWLFmCYRiMGDGCzMxMGjVqZPnczc2txJWv69ata/nZzs6OgoICAC5evMikSZOYOXMm\nZrOZ69ev07p16yIxRUREREREbqYWaOspVQEcGRlZqot+6NChcidU2Uq6BzgiIoKIiAjL9qFDh8jO\nzrZsZ2Vl4eHhUaZj/T979x5VVZ3/f/y5uSipcDAJLQgnb1GajjNOZlop6nBRU5zRNIQ1LscuVuMt\ndfRnaOqoZVh46WJNWWhlKZgaoJDlBfXrtatRmpi3r1ncFf0icH5/+PV8JaAB2XAO57wea7EW+5y9\n3/u9N/sczvt8Pvvz8ff35+9//7utxdcMaukVERERERGpnmoVwAsWLKjwmNVq5eeff+bTTz+lUaNG\ntsGcnNUDDzzA+PHjeeKJJ7BYLKxZs8bWZdnDw4OCgoL/GKNv37588MEH3HfffRiGwauvvspdd91l\nG1lbRERERERE6k61CuDfmuLo0UcfZerUqXzxxRf07NnTtMTqg2EYFe4BNgyjQusvQOfOnRk7diwP\nP/wwVquVO+64g9mzZwNX7t19+umnOX36dIXtrhUVFcXp06cZMGAAAJ06deJvf/ubLRcREREREZFf\nU61gHsNak3mAqrB7926mTZvG9u3bzchJxKFdvny51jE8PT1NyESqYsLbmv7RSL07f/58rWM0bdrU\nhEzModdQ3THjPQ7M+RuVlpbWOoazzyQi5goPDzclTkObeWXlypX2TqFKVxv0Ggo3M4Lk5ORQWFho\nRigRERERERGROlGtLtDr16+v9PHLly9z5swZ1qxZw+23325qYiIiIiIiIqJeNWaqVgH8z3/+E8Mw\nquxyExgYyMyZM01NTERERERERMRM1SqA33nnnUofd3Nzw8fHh7Zt2+r+DREREREREXFo1SqAL168\nSOfOnWnevHld5yMiIiIiIiLXcHMzZegmoZoF8KRJk/j3v/+tAlgaPLNGzqwtRxrB0xmVlZXVOoZ6\ntUh1mfV6btasWa1jONt7i7MdDzjO/yGz6L1S6ltBQYG9U5AGrlpfJURGRrJy5UqKi4vrOh8RERER\nERGROlGtFuAmTZpw6tQp7r33Xrp06cKNN96Ih0f5TQ3DYP78+XWSpIiIiIiIiKtypJ5aw3C0AAAg\nAElEQVQsDV21CuAVK1bYfs/IyKh0HRXAIiIiIiIi4siqVQBnZmbWdR4OIyQkhBdeeIE//OEP1d7m\nww8/ZNiwYde9vYiIiIiIiNS9Ku8BXr9+Pfn5+fWZS4P0888/88Ybb9g7DRERERERcVKGYTjsT0NT\nZQE8ffp0Tp06VZ+5OLTvvvuOkSNHEh4eTmRkpK0r+MiRIzlz5gwRERFcvnwZgK+++oqHHnqI+++/\nn4ULF9pipKenM2jQIPr378+YMWPIy8sDYNmyZTzzzDMMHz68yjmXRUREREREpHaqLICdbZj+2rBa\nrUyaNIno6GhSUlKYO3cukyZNoqioiPnz53PLLbeQnJyMp6cnAN988w1r1qxh7dq1rFq1ip9++omT\nJ08ybdo0XnrpJdLS0ujevTuxsbG2fWzfvp3XX3+dmJgYex2miIiIiIiIU6vWPcCu7tSpU/zyyy9E\nREQA0KlTJwICAvjqq68qbfYfOHAgAP7+/tx0002cPXuWb775hu7du9O2bVsAHnroIZYsWWL7oqFL\nly5YLJYa5zZ06NBKH09MTKxxLBERERERcTwNsauxo/rNAviXX37hzJkz1Q52yy231DohR1BWVkZ4\neDiGYdC5c2dGjhyJj49PuXW8vb3Jzs7Gz8+vwvbNmjWz/W4YBqWlpRQWFrJv3z5bEW21WrFYLOTm\n5gJcV/ErIiIiIiIi1febBfBjjz1Wo2DffvttrZJxFG5ubqSkpNiWT506VWFAsLy8vEqL36r4+/tz\n7733Eh8fb1qeoJZeERERERGR6vrNAnjYsGH4+/vXVy4OKzAwkJYtW5KcnExERAQHDx4kOzubzp07\nc/jwYS5cuEBZWRlublXeUk2vXr2Ii4vj5MmT3HrrrXz55Zds3LiR//f//l89HomIiIiIiDQ0v1Vn\nSM38ZgH80EMP0bFjx/rKxSFU1b/+xRdfJDY2lmXLltGkSRPi4+Px8vLi9ttvx2Kx0LNnTxITEyts\nf3X5pptuYu7cuTz55JOUlJTQtGlTZsyYUefHIyIiIiIiIlcY1iqGew4ODmbdunUuVwCLczNjdPOS\nkpJax/DwMGf8OQ2IULnS0tJax3B3dzchE3EFZs2aYMbr2ZFyMYOzHQ841iwbjnReRKqrZ8+epsS5\nOqVpQ/H+++/bO4UqjRgxwt4p1IhGgRYREREREXFg+sLKPFV2Jo+MjKR58+b1mYuIiIiIiIhInamy\nBXjBggX1mYeIiIiIiIhInVIXaBEREREREQemLtDm0XjaIiIiIiIi4hLUAiwuxYxvzzw9PU3IxBxm\njCbqjN8oOsoxlZWVmRJHc/85Nkcaqdisa//IkSO1jtG+fftax3CU1zKY93p2pL+zGfR/SOrbH//4\nR3unIA2cCmAREREREREHpi+KzKNmBREREREREXEJKoBFRERERETEJbhsAXz69Gk6duxY4fGkpCRG\njx5do1jJyclcuHABgOnTp/Pqq6+akqOIiIiIiIhhGA7709C4bAEMVfelr+kfcunSpZw/f96MlERE\nRERERKSOuHQBXBP5+flMmDCBsLAwBg4cyBtvvAHAjBkzyMrKIiYmhoMHDwKQl5fHI488Qp8+ffj7\n3/9OUVERAD/88APR0dGEhoby4IMP8vXXXwOwd+9eRowYwYQJE5gyZYp9DlBERERERMTJqQCupsWL\nF2OxWEhNTWX16tW8++67HDx4kPnz5wOQkJDAH/7wBwAyMjKIi4vjk08+ITs7m/T0dKxWK+PGjSMy\nMpLNmzfz7LPPMm7cONu0Ct9++y0PP/wwixYtstsxioiIiIiI43Fzc3PYn4ZG0yBV07Zt23jttdcA\nsFgs9O/fn4yMDFvRe+08eA888ADe3t7AlXkQz549y7Fjx8jNzWXo0KEAdO3alRtvvNHWauzl5cXd\nd99d47yuxvu1xMTEGscSERERERFxZi5bALu5uVU6eXtpaSmGYTB69GjOnj2LYRgkJyeTk5ODxWKx\nrefj48PPP/9caexmzZrZfnd3d6esrIyCggKKioqIiIgArhTMFy5cIC8vDx8fH3x9fU0+QhERERER\nEbmWyxbAzZs3xzAMzp49S6tWrWyPHz9+nICAAObMmVNufT8/P/Ly8mzr5uXl4efnV+39+fv74+3t\nTXJycoXn9u7de51HoZZeERERERFn1xBHW3ZUDa/Ttkm8vLwYMmQI8fHxXL58GYDDhw+zfv16oqOj\nK6zfp08f1qxZA0BOTg5paWn07t0bAA8PDwoLC39zfwEBAbRq1YrNmzfbYkyePJlLly6ZeFQiIiIi\nIiJSFZctgAFmzpyJxWJhyJAhDBgwgHnz5rF48WLat29fYd3x48eTn59PeHg4MTExPProo3Tq1AmA\n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\nuzulpaU1On9VfWGQmJhYozgiIiIiIiLOzu4F8LX3AHfr1o2AgAAOHDhAVFQUUVFR5dYdPnw4w4cP\n59y5czz11FN89NFHeHh4kJuba1snPz/fVtj6+fmRl5dnG9k5Ly8PPz+//5jTDTfcwMSJE5k4cSJf\nf/01Y8aMoWfPnuXW8ff359577yU+Pr7C9lOmTKFTp068+uqrAIwcObKaZ0NERERERMQ1ffLJJyxd\nupTLly/j6+vLs88+S7t27XjhhRdIT0/Hzc2Nfv36MWnSpOveh927QF8rKyuL48eP06ZNmwrPvfzy\ny7b7Y/39/QkMDLT1Oc/KyiIzMxOA1NRUunXrBlzp4rxmzRrgSmtwWlpahW7PV3l6elJYWAjAY489\nxtGjR4Er3at9fHwwDAMPDw9b63KvXr04cOCArWvzl19+yfz584Er0yXdcccdAGRkZPDjjz9y4cKF\nSvd77RcA1yMxMbHSHxERERERkYbip59+Yvr06SxevJiPP/6YAQMG8Mwzz5CcnMz+/fvZtGkTH330\nEXv37mXLli3XvR+7tgAbhkFMTAzu7u5YrVYaN27MnDlzaN++fYV1Bw8ezPTp03njjTcwDIMuXbow\nePBgNm3aRNeuXVm5ciX79u2jSZMmvPLKKwBMmDCB2bNnEx4ejru7O48++iidOnWy7ftaoaGhTJw4\nkX/84x/ExMQwefJkSkpKAIiKiiIoKIiePXvy1ltvMWzYMD788EPmzJnDk08+SUlJCU2bNmXGjBkA\nPP744yxYsIDly5fTr18/nnzySZYsWcKdd95ZYb8N8cZxERERERERM3l6erJ48WJbY+gf//hHXnzx\nRVJTU4mMjMTD40rp+uCDD5Kamsqf//zn69qPYa1tE6SdJSUlsXHjRt588017pyJS74qLi2sd4/jx\n47VPhCuDuDkKM85Lo0aNTMhEXIEZ1xs43zWn16FU1/nz502J06xZM1PiiGN79913TYnz6/F9HN21\nA+o6mltvvbVO4q5YsYK9e/dy7tw5pk+fTo8ePQDYuXMnL7zwAuvXr7+uuHa/B1hEREREREQaproY\nlHf37t288847vP322zz22GPlvhD18vLi4sWL1x3boe4BFhEREREREdeVnp7OjBkzWLFiBW3btuWG\nG24o16vo4sWLNGnS5LrjN/gW4MjISCIjI+2dhoiIiIiISJ1w5HGDzByAd9euXcyfP58333yT2267\nDYA2bdrw448/2rpA//jjj7Rt2/a696EWYBEREREREbGrS5cuMWPGDJYtW2YrfgHCw8P54IMPuHjx\nIhcuXGDNmjUMHDjwuvfT4FuARUREREREpGH75JNPyM3N5emnnwauTBdrGAarVq3im2++YciQIRiG\nwaBBg6qc2rY6Gvwo0CKuTKNAV06jz0p90ijQldPrUKpLo0BLTbjqKNCnTp2ydwpVCgwMtHcKNaIW\nYJEGzIwPh2YVridOnKh1jKCgIBMygfz8/FrHuOmmm0zIRFyBWUWaIxWMjpKLCiPXYNbfx4zrRdeK\n43OkL9zrkyPfA9zQ6B5gERERERERcQkqgEVERERERMQl2LULdHBwMK1bt8bd3R34vxudn3vuOe66\n6656zWXnzp20a9eOVq1aVblOdnY2X3zxBSEhIfWYmYiIiIiIiJjBrgWwYRgkJCTg7+9vzzQAWLly\nJY8//vhvFsB79uxh9+7dKoBFREREREQaILsWwFarleoOQl1UVMTUqVM5duwYly9fpkePHsyaNYsN\nGzaQkpKCr68vhw4dwsvLi+XLlxMUFER+fj6zZs0iMzMTDw8PBg8ezNixY4Errc+TJk0iKSmJsLAw\n9uzZw7Fjx5gyZQrt2rXjmWee4fz581y+fJmYmBi6du3K3LlzKSsr4+LFi8TFxZGenk58fDyXLl0i\nKCiIuLg4fH19uXTpEv/85z/JzMykpKSE/v37M23aNACio6O577772Lp1KydOnOCJJ56goKCADRs2\n4O7uzmuvvUZAQECdnXMRERERERFX1WDuAU5KSsLHx4fk5GQ2b96Mu7s7R44cAWDXrl2MGjWKtLQ0\n+vbty6JFiwCIi4vDYrGQmprK6tWree+99zh48GC5uCkpKYwfPx5/f3/i4uIIDw9n2bJljBgxgk2b\nNrFmzRp2795N+/btGTVqFKGhocTFxXHy5EmmTZvGSy+9RFpaGt27dyc2NhaA9957j4sXL5KamkpS\nUhJJSUnl9nvgwAHeffdd5s+fzwsvvMDNN99MSkoKbdq0Yd26dfV0RkVEREREpCEwDMNhfxoauxfA\nMTExREREEBERQXh4OKNGjap0vRYtWvD555+TkZFBSUkJs2bNIjg4GIB27drRuXNnAEJDQzl06BAA\n27dvt83xZbFY6N+/PxkZGbaYv55A+WprdIsWLdiyZQuHDx/G19eXZcuW4enpWW7dHTt20L17d9q2\n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\n45k4cSJr166lYcOGnD592tLjey+op1dEREREpGR7EFdbLq6KrAe4bNmy9OzZk3nz5nHr1i0Ajh49\nyoYNGxg0aFCOY9PT0xk0aBAXLlwA4IknnsDJyQkHh6z0d+zYwc2bN0lNTWXPnj089dRTNGnShMTE\nRH788UcANm/eTNWqValevXquXIxGI9euXSMjI4Nff/2VUaNGcevWLYxGI40bN7b8wJUpU4YrV64A\n0LFjR7755hsyMzMxm80sWrSIvXv3kpSURLly5ahTpw7p6emsXr0agLS0NIA8e71FRERERETk3ivS\nOcATJkzg448/pmfPnkDW8OW5c+dSv379HMcZjUb69u3LkCFDLPebmjhxIs7OzgB4eXkxePBgzpw5\nwzPPPEO7du0A+Pjjj3n//fe5fv06FStW5OOPP84zj4YNG+Lq6kqbNm0IDQ2lRo0adO3aFScnJx5+\n+GGCg4MBCAgI4M0332TkyJG88MILnDt3jqCgIACefPJJhgwZwkMPPYSfnx8BAQG4u7vz9ttvExMT\nwwsvvMD8+fPv2Hqjlh0REREREZF7x2B+wLskBw0aRN++fenWrVtRpyIixcTdpjlY4/HHH7dDJlIa\n2OvPaHFqBL1x40ahY2Q3UpcUJfH7XFxkZGTYJY6jo6Nd4tjD6dOnCx2jdu3adsik5Fm1apVd4vTr\n188uce6XlJSUok4hX7evx/QgKLIh0CIiIiIiIiL30wNfAKslVURERERERKzxwNwHOD/Lli0r6hRE\nRERERETkAfDA9wCLiIiIiIiIWEMFsIiIiIiIiJQKD/wQaBFbLFy4sNAxRowYYYdM5F7SCs5yP5XE\ntShK2grO9lASv8/FRXFavdletILzvXPp0qWiTqFI6DPIftQDLCIiIiIiIqWCCmAREREREREpFVQA\ni4iIiIiISKlQIgtgT09PAgICMJlMdOnSheHDh3P27Nl8j1+zZk2Bn8vf35+YmJgCny8iIiIiIiL3\nR4ksgA0GA8uXLycsLIzvvvsOT09PpkyZkuexFy5cYMmSJfc5QxEREREREbnfSmQBbDabMZvNlsc+\nPj6cO3cuz2P79+/P+fPnMZlMzJgxI0ehnJSUhJeXF1evXmXFihWYTCYCAwPp27cvJ0+etBz3v//9\nj+eff5527doxY8YMy/atW7fSrVs3TCYTQ4YMITY2lv379zNgwADLMS+99BJjx461PO7evTvHjh2z\n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\nhdFopHHjxned8O3r60t0dDRnz54FYNWqVfj6+uLg4EDTpk05fvw4J06coEGDBjRr1ozo6GguXrxI\n7dq17+0LFhERERERKaVKZA+wwWDINQfYYDDk6v0FaNiwIa6urrRp04b169dTtWpVOnbsyLp165g7\ndy4ADRo0oEaNGnTt2hUnJycefvhhgoODLc/11+cGqFKlClOmTOGVV14hIyODGjVqMHnyZACcnJyo\nUqUKRmPW2+/i4sKtW7d0L2EREREREcnlQVxtubgymK29X5CIALBw4cJCxxgxYoQdMpH86HskIiIi\nJUlaWlpRp5Cvhx56qKhTsEmpHwItIiIiIiIipYMKYBERERERESkVVACLiIiIiIhIqaACWERERERE\nREqFErkKtIiIiIiISEmhVaDtR6tAi4iIiIiIFGPXr18v6hTyVbZs2aJOwSYaAi0iIiIiIiKlggpg\nERERERERKRVUAIuIiIiIiEipUGoKYH9/f2JiYnJt37t3L3FxcQWKuWDBAiZOnFjY1EREREREROQ+\nKDUFcH5CQkI4d+5cUachIiIiIiIi91ipLoDnzZvHgQMHGDt2LAsWLKBly5ZkZmZa9r/66qusXr2a\nEydO0K9fP7p160ZAQABfffWV5ZgbN24wZswYOnbsSL9+/UhISADgzz//ZNiwYXTp0oVu3bqxceNG\nANq3b09sbCwAYWFhPPnkk9y4cQPIKsanTp16v16+iIiIiIhIqVKqC+BRo0bh4eHBnDlzeO2116hc\nuTJRUVFA1lLj33//PZ07d2bBggX069ePb7/9ltWrV7N//35u3boFwP79+xk7diw7d+7kkUceYd26\ndQBMnDgRHx8fvvvuOz777DOmTJnC+fPn8fHx4dChQwBERUXx5JNPcuTIEcvjVq1aFcE7ISIiIiIi\nUvIZizqB4iD7VsidO3cmIiKCFi1asGfPHpo0aYKbmxuVKlVi+/btNGjQgCeeeIIFCxZYzn3qqaeo\nWrUqAI0aNSIuLo709HT+3//7f3z88ccAPProo/j4+HDgwAFatGjB4cOH6d69O4cPH2bAgAHExMTw\n9NNPc/jwYWbMmGFT7r169cpze2hoaEHeChERERERKWYMBkNRp1BilKoe4MzMTAIDAzGZTPzrX//K\ntT8gIICIiAgAwsPDCQwMBGDs2LHUr1+fN954g/bt27Ny5UrLOeXLl7f839HRkczMTJKTk3Ptc3Fx\n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\nO0bDhg1xcLBucM+0adM4c+YMvXv35sMPP2Tbtm2sXr2ayMhI/v3vf9/1/DVr1jBr1iyuXLmS64I5\nMzMTb29vVqxYcc9jAPz6668cP36c2bNnM3bs2Bz7Ll++zOzZszl06NAdY0RERBAREcH27dsJCAjI\nsS8lJYXvv//epmL8008/JT4+ng4dOuDq6ppjn7e3932L0bdvXxYvXpzrfFu98cYbDBgwgBYtWhQ4\nRqdOnejfvz9PPPEEjo6OOfbZEtdeceLj44mLi8tVGFn73g4bNozExEQaNGiQKw9riqtTp06xY8cO\n/vOf//DMM8/k2Gc0GunQoQP+/v73PMbt8mqMysjIoE2bNuzfv/+O54aFhfHJJ59w6tSpXPuMRiNd\nunRh9uzZVufStWtX6tatm+f7+8orr9y3GJD1WfXpp59y4cIFS/FqNpsxGAxW96aOHz+ezZs3U7ly\n5Ry5GAwGmxpurly5QkxMDFFRUcTExHDx4kW8vb1tLugLGyckJISoqCgOHz5M9erV8fHxoVWrVnh7\ne9vU6J4tMzOT7du3ExISwo8//mjV+xocHIyLiwtvvfVWrn1z5szh8uXLvP/++zbnIiWbCuBS6vr1\n6+zYsYOPPvqI+Ph4KlasSPv27RkzZgyPPPLIPY+za9cuduzYQWRkJDVq1LAUAlWqVCnQ67lx4wY7\nd+5k9uzZXLp0iQ4dOjBo0CCrL2LsGaewMezVSAFw8OBBtm7dyo4dO3Bzc6NatWqcP3+eGTNm8OST\nT+Z7XqdOnfj222956KGHLNuuXLlCjx49iIiIsPr57RFn0KBBdOrUiUGDBuHg4EB6ejpr1qwhLCyM\n5cuX25RLeHh4ru3+/v5W59K5c2e2b98O5LxIDAoKsmlotz3ihIaG8sknn/DMM88QHh5OREQE06dP\nJzMzk3fffdeqGP7+/oSHh+Pg4JCjpzGvC+D8ZGRk8OKLLzJt2rQc241GIx4eHhgMhvsS48iRI6xb\nt46NGzfyt7/9Lce+MmXK0KlTJwYMGHDHGImJiRw4cIDJkyfzwgsv5MrF19c3V+w7ya/oMBgM7Ny5\n877FmDhxIv/9739p2rRpriJ48uTJVsWArIabY8eOUbZs2Vyf79ZevNvys3Wv48ycOZPly5fj7u6e\no9HI1u9P9u9QYURGRtKmTRtLY2F6ejqZmZk2FRGFjbFmzRqWLFnC+fPnefTRR3Psu3btGq6urlZ/\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f8d1d35edd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cm = plot_cm(y_test, y_pred, labels=sorted_labels + [\"O\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(41, 41)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\na9YMuLJYVm5urmV+8Y0EBwezf/9+Nm3aREhISNkuVkRERERE7ILRaKy0r6qmyvYAlzYOftasWbz2\n2mu8//77eHp6MnXqVABmzpzJ+PHj+eCDD6hZsyazZ8/GycnppnGv/dy6dWsWL17Mv//9b2rWrMm8\nefMAeOWVVxg6dChubm706tWLXr168eabb/LFF1/cMJ6rqyvt27cnOzvbMl9YRERERERE7gyD+dou\nTinVmjVrWL9+PZ9++qlV406cOJGmTZvSu3dvq8aVOyc3N7fcMUr68kVERO6Mjz76qNwxXn75ZStk\nIiJye25l6mZF+fPPPys6hTKpen3WNuTo0aNs376d7t27V3QqIiIiIiJSSRkMhkr7qmqq7BDoqm7O\nnDmsW7eO8ePHF1u5WkRERERERO4MDYEWKSMNgRYRqVo0BFpEqrp77723olMo1dmzZys6hTJRD7CI\niIiIiEglVhWHGldWmgMsIiIiIiIidkFDoKVKsNbq2/3797dKHBERW1ZYWFjuGCaTyQqZVB7W+nNJ\nvTgicjs8PT0rOoVSnTlzpqJTKBMNgRYREREREanE9OWZ9WgItIiIiIiIiNgFFcAiIiIiIiJiF6pE\nAXzy5Ekefvjh67avWbOGfv36VUBGIiIiIiIid4fBYKi0r6qmShTAUPq496p400VEREREROTuqzIF\ncFlkZmby0ksv0aVLF3r06MGuXbsAOH/+PCNGjCA4OJjw8HAWLFhgOcbX15cVK1bQvXt3OnfuzN69\nexk1ahQBAQEMGjSIoqIiTp48Sdu2bfnkk0/o3r07Tz75JF9//TVwZXXIiRMnEhwcTJcuXXj99dct\nq2hGR0czd+5c+vfvT0BAAAMGDCA3N5d3332XyZMnW3LIzs6mVatWZGVl3cW7JSIiIiIiYh9ssgB+\n//33adKkCcnJybzzzjuMGjWKy5cv8/777+Pq6kpCQgJLlixh6dKlHDhwwHJcVlYW69evJzg4mOHD\nh/PKK6+QkJDAjz/+SEpKCgB//fUXJpOJ9evXM336dN58802KiopISkriwIEDxMfHEx8fz/fff098\nfLwldmJiIrNnzyYpKYmMjAySk5MJDw8nISGBoqIiALZs2UL79u2pXbv23b1hIiIiIiJSaVX0MGdb\nGgJtk49B2rZtm6V396GHHmLz5s1Uq1aN7du3889//hMAV1dXunbtyq5du2jTpg0AXbp0AcDHx4cG\nDRrQoEEDABo2bMiZM2e4//77MRgM/P3vfwfgiSeeoLCwkKNHj9KtWzcCAgIwGo04OjryyCOPcPz4\ncUtOfn5+uLi4ANC0aVNOnTpFeHg4Li4u7Nmzhw4dOpCcnExoaGiZrjUiIqLE7atXry5THBERERER\nEVtXJXqAjUZjiQ+gLywsxGAw0K9fP0JCQizFY2ZmJrVq1bK0q1mzJgDnzp3D1dXVsr1WrVpkZGRc\n185oNFreA5hMJksvrcFgsBSyAM7OzmRnZ3Pu3Dlee+01goKCCAkJYfPmzZZjgGLHXBsvPDycDRs2\nkJeXR0pKCl27dr2NOyQiIiIiIiI3UyV6gN3c3DAYDJw+fRpvb2/L9qNHj1KvXj0mTZpUrH2dOnXI\nzMzkvvvuA66sIu3l5YWHhwdZWVmWGFlZWXh4eJQpF7PZzPnz5y2FdHZ2Nq6ursyaNQtHR0e++uor\nHBwcGD169C3FCwsL47nnnqNTp060adMGZ2fnMuWjnl4REREREdtmNFaJfssqoUrcSScnJ3r27Mns\n2bO5fPkyAIcPH2bt2rX07dv3uvYBAQGsWbMGgJ9//pmIiAiKiorw9/dn2bJlwJXe4KSkJPz9/cuU\ni9lsZsOGDQDs3LkTJycnGjVqREZGBk2bNsXBwYEjR45w4MABLl26dNN4jRo14v7772fGjBllHv4s\nIiIiIiIit65K9AADvPnmm8yaNYuePXsCV+bwxsTE0KRJk+vajh49mjFjxhAQEICzszMxMTE4Ojoy\nYsQI3nrrLUJCQjCZTLz44os0b94cuPHjlK7dZzKZuHz5MuHh4Zw/f563334bgH79+jF27FhWr15N\n27ZtiY6O5h//+ActW7a86bWFh4czZ84cAgMDy3RPRERERERE5NYZzCVNrpUSnTx5kqCgIL777jur\nxt24cSObNm1i5syZVo1rSz799FOrxOnfv79V4oiI2LKrj/ErD5PJZIVMKg9r/blUFVdMFZGKV79+\n/YpOoVQnTpyo6BTKpEoMga5MrP19QU5ODgsWLChxKLeIiIiIiIhYjwrgMrLmN7dbt24lNDSUwMBA\ny6OYRERERERE5M6oMnOAK4N69epZdfizv79/mRfhEhERERER+6LpE9ajHmARERERERGxCyqARURE\nRERExC5oFWixK2fPni13jHvvvdcKmVQemZmZVonj5uZmlTjWUFRUVO4YeuC83KqcnByrxKlRo0a5\nY+Tl5VkhE6hevbpV4ojty83NLXcMJycnK2QiYtsaNGhQ0SmU6vfff6/oFMpEf+GJiIiIiIiIXVAB\nLCIiIiKZaQ5LAAAgAElEQVQiInZBq0CLiIiIiIhUYloF2nrsogfY19eXoKAgQkNDCQ4OZvDgwZw4\ncaLEtkVFRURFRdGlSxd++umnMp/r0KFDDBw4EIDo6Gjmz58PQGhoKOfOnQNgxYoVt3klIiIiIiIi\ncrvsogA2GAzExsYSHx9PQkICvr6+TJkypcS26enp7N+/n8TERJo0aVLmc7Vo0YKFCxdetz0+Pp46\ndepw9uzZEveLiIiIiIjInWUXBbDZbObaxa4ff/xxTp48eV27q72/RUVFdO/enf/85z+kpaURERFB\nSEgI4eHh7Nmzx9J+7dq1BAUFERwczJgxY8jPzyclJYVu3bpdF9vX15f09HR69+7NqVOnCA0NZdq0\naUyePNnSJjs7m1atWpGVlWXlOyAiIiIiIlWVwWCotK+qxi4K4Gvl5+ezbt06AgICrttnNBpZvHgx\nJpOJ+Ph4fHx8GD9+PIMGDWLjxo0MHDiQCRMmAHDixAneffddlixZQkJCAjk5OcTFxQElj9G/um3q\n1Kncd999xMfH06NHDxITEy2PbNmyZQvt27endu3ad+ryRURERERE7JbdLIIVFRWF0WgkIyMDT09P\nhgwZckvHrVu3zvK+bdu2lrnDu3fvpk2bNnh4eAAwY8YMHBwcSE1NLTFOSY9bbtasGS4uLuzZs4cO\nHTqQnJxMaGhoma4rIiKixO2rV68uUxwRERERERFbZzcFcGxsLJ6engCkpqYSGRnJ2rVrSUxMJC4u\nDoPBwMiRI3nooYeKHffll18SGxvLpUuXKCwstBSymZmZuLi4WNo5OjreVl5hYWFs2LCBdu3akZKS\nwrRp027zCkVERERExBYZjXY3cPeOsZsC+Noe2Hbt2lGvXj32799PZGQkkZGRln3Xzg1OT09n3Lhx\nrFy5Eh8fH44dO0ZwcDAAbm5upKWlWdpevHiRvLy8MucVFhbGc889R6dOnWjTpg3Ozs5lOl49vSIi\nIiIiIrfGLr9K+O233zh69CiNGzcucf+1vbw1a9akUaNGFBQUsGzZMgBycnLw8/MjLS2NU6dOYTab\nmTBhAqtWrbrpuR0cHPjrr78oLCwEoFGjRtx///3MmDGjzMOfRURERERE5NbZRQ+wwWAgKioKk8mE\n2WymevXqTJo0qdTHHF1dsMrX1xc/Pz+CgoLw8PBgzJgxHDhwgD59+rBq1SomTpxoiduyZUteeOEF\nvvnmmxvG9PHxwdXVlY4dO7JmzRq8vb0JDw9nzpw5BAYG3pkbICIiIiIiVVZVXG25sjKYS1qdSe6q\njRs3smnTJmbOnFnRqdi8s2fPljvGvffea4VMKo/MzEyrxHFzc7NKHGu4urJ6eWiujdyqnJwcq8Sp\nUaNGuWPczlScklSvXt0qccT25ebmljuGk5OTFTIRsW0PPPBARadQql9++aWiUygT/YVXwXJycliw\nYAF9+/at6FRERERERERsmgrgCrR161ZCQ0MJDAykTZs2FZ2OiIiIiIhUQgaDodK+qhq7mANcWfn7\n++Pv71/RaYiIiIiIiNgF9QCLiIiIiIiIXVAPsIiIiIiISCVWFYcaV1YqgMWuWGMF5yNHjpQ7hq+v\nb7ljAFy8eLHcMay1evOFCxfKHcPFxcUKmWgFZ7m7rLF6M2B5Pnx5aPVmudu0grOIVDX6K1FERERE\nRETsggpgERERERERsQsaAi0iIiIiIlKJaQ6w9dhFD7Cvry9BQUGEhoYSGhpKSEgIoaGhfPvtt9e1\nLSoqIioqii5duvDTTz+V+VyHDh1i4MCBAERHRzN//nwAQkNDOXfuHAArVqwox9WIiIiIiIjI7bCL\nHmCDwUBsbCyenp43bZuens7+/fs5dOgQJpOpzOdq0aIFCxcuvG57fHw8AGfPnmXhwoU8++yzZY4t\nIiIiIiIit88ueoDNZjNms/mm7a72/hYVFdG9e3f+85//kJaWRkREBCEhIYSHh7Nnzx5L+7Vr1xIU\nFERwcDBjxowhPz+flJQUunXrdl1sX19f0tPT6d27N6dOnSI0NJRp06YxefJkS5vs7GxatWpFVlaW\ndS5cRERERESqPKPRWGlfVU3Vy/gOMhqNLF68GJPJRHx8PD4+PowfP55BgwaxceNGBg4cyIQJEwA4\nceIE7777LkuWLCEhIYGcnBzi4uKAksfoX902depU7rvvPuLj4+nRoweJiYkUFRUBsGXLFtq3b0/t\n2rXv0hWLiIiIiIjYD7sYAg0QFRVlGdJsNptxd3e3FKw3sm7dOsv7tm3bcuLECQB2795NmzZt8PDw\nAGDGjBk4ODiQmppaYpySeqCbNWuGi4sLe/bsoUOHDiQnJxMaGlqm64qIiChx++rVq8sUR0RERERE\nxNbZTQFc2hzgJUuWEBcXh8FgYOTIkTz00EPF9n/55ZfExsZy6dIlCgsLLYVsZmYmLi4ulnaOjo63\nlVdYWBgbNmygXbt2pKSkMG3atNuKIyIiIiIitkmrQFuP3RTApc0BjoyMJDIy0vL55MmTlvfp6emM\nGzeOlStX4uPjw7FjxwgODgbAzc2NtLQ0S9uLFy+Sl5dX5rzCwsJ47rnn6NSpE23atMHZ2blMx6un\nV0RERERE5NZoDnAJru3lrVmzJo0aNaKgoIBly5YBkJOTg5+fH2lpaZw6dQqz2cyECRNYtWrVTWM7\nODjw119/UVhYCECjRo24//77mTFjRpmHP4uIiIiIiMits4sC2GAwEBUVdd1zgJcsWVJqe7iycrOf\nnx9BQUH07t2bgIAAWrZsSZ8+ffDy8mLixIlERUURHByMyWTihRdeuGEOAD4+Pri6utKxY0dOnz4N\nQHh4OOfOnSMwMNC6Fy4iIiIiIlWewWCotK+qxmC+lecDyR21ceNGNm3axMyZMys6FbkFR44cKXcM\nX19fK2RyZeh9eZV12H1pLly4UO4Y186rF7E3V0cGlcftPL9eREQqv2bNmlV0CqU6fPhwRadQJnbR\nA1yZ5eTksGDBAvr27VvRqYiIiIiIiNg0u1kEqzLaunUrEydO5JlnnqFNmzYVnY6IiIiIiFRCRqP6\nLa1FBXAF8vf3x9/fv6LTEBERERERsQv6KkFERERERETsgnqARUREREREKrGquNpyZaUCWOzK5cuX\nyx3DGis4//jjj+WOAdC0adNyxygoKLBCJlCtWjWrxBGxV1rBWURE5M7TEGgRERERERGxC+oBFhER\nERERqcS0CrT16E6KiIiIiIiIXbDbAjggIIADBw5ct33JkiV07NiRf/7zn7cVt1+/fvzwww+kpKTQ\nrVs3AGJiYli2bBkAO3fu5PTp07efuIiIiIiIiNwWDYH+L0lJSbz66qv8/e9/v63jFy1aBEBKSopl\ntbaRI0da9i9evJghQ4bg7e1d/mRFRERERMTmaRVo61EBfI333nuPb775hl9//ZU//viDgQMHMnbs\nWI4cOUJBQQFdu3ZlzJgxABw/fpzo6GjOnDmDq6srEydOpFmzZgQEBDBjxoxicaOjo2nQoAH5+fns\n3buXX3/9lYiICGJjY9m1axcODlf+MwwfPpx27doRFRV1169dRERERETE1tntEOiSvPbaazzyyCO8\n/vrrDBs2jKVLl5KTk0NCQgJr1qxhzZo1lmHT48ePp3v37mzatIkXX3zRUhiXxmAw8Morr+Dp6cn7\n77/PsGHD8Pb2ZseOHQDk5+eza9cuQkND7/h1ioiIiIiI2CP1AJfAbDYDV+bz9u3bFwAXFxeaNGnC\n8ePHad68Ofv27WPu3LkAdOnShQ4dOpQ5flhYGBs2bKBz587s3LmTZs2a4eHhUaZcIyIiSty+evXq\nMsUREREREZHKSUOgrceuC+CioiJCQkIwGAy0aNGCd955p9j+Y8eOMW3aNH777TeMRiOnT5/m73//\nO1lZWZjNZpydnS1ta9SoUebzh4aGMn/+fHJzc0lOTlbvr4iIiIiIyB1k1wWw0Whk48aNpe6fNGkS\nzZs3Z/78+QD07t0bgNq1a2MwGMjKyqJ27doA/P777zRo0KBM569fvz5NmzYlKSmJbdu2MXr06DJf\ng3p6RUREREREbo3mAN9ARkYGDz30EAC7du3i2LFj/PXXXzg6OtKhQwfWrFkDwPbt2xk8ePAtxaxW\nrRoXLlywfA4PD2fmzJn4+PhQp04d61+EiIiIiIhUaUajsdK+qpqql7GVlDaO/trtQ4YM4Z133qF7\n9+6kpqYybNgw5s6dS1paGlOmTGHz5s106dKFOXPmEBMTc8O4VwUFBfHqq6+yePFiAEJCQkhPT9fw\nZxERERERkTvMYL66IpNUiPz8fAIDA/nqq6+oVatWRadj8y5fvlzuGNWqVSt3jB9//LHcMQCaNm1a\n7hgFBQVWyMQ6cZycnKyQiYiIiIhtadu2bUWnUKr9+/dXdAplYtdzgCuDxYsX4+/vr+JXRERERERK\npFWgrUcFcAUKCQnBw8PD8jglERERERERuXNUAFegG61ALSIiIiIiItalAlhERERERKQSq4qrLVdW\nupMiIiIiIiJiF9QDLHbFGis4W4M1Vm+2FgcH6/wYsFYca7DG4vZabELutsLCwnLHMJlMVshERETE\ndlWev1hFRERERETkOvpi3no0BFpERERERETsggpgERERERERsQs2XwCfPHmShx9++Lrta9asoV+/\nftdtP3ToEP7+/gwZMuS2zhcTE8OyZcsA8PX1JT09neTkZP7xj38A8Ntvv5GamnpbsUVERERExP4Y\njcZK+6pq7GIOcGlj5kvavnPnTh577DGmT59+W+caOXLkdfG7dOlCly5dAEhKSqKwsJB27drdVnwR\nERERERG5PVWvZL+DEhMT+fzzz9myZQsvvvgiAB9++CHBwcF069aNl156iYsXLwKQl5fHmDFjCAwM\nJCwsjHXr1gEQHR3N/Pnzgf+3Eu3V3uYtW7bw8ccfExsby7Rp0+jYsSPff/+95fxLlixh2LBhd/OS\nRURERERE7IZd9ADfqqCgIH766SfS09OZPHky33//PUuXLmXTpk3UrFmT/v37ExcXx0svvcQnn3xC\nQUEBX3/9Nenp6XTv3p0nnnii1NgGg4HOnTvTtWtXGjZsyEsvvURRUREbNmywDNFOSkqiV69ed+ty\nRURERESkCtAq0NajAvgGHn74YbZu3Wp5vmnr1q05fvw4ANu3b2fQoEEAeHl5sW3bNmrUqFGm+GFh\nYQwfPpwxY8aQlZXF999/T+fOncsUIyIiosTtq1evLlMcERERERERW2fzBbDRaLQMRb5WYWEhBoOB\nfv36cfr0aQwGA/Hx8cXa5ObmMnXqVFJSUgDIzs7Gz88PgMzMTGrVqmVpW9biF6BVq1Y4OjqSkpLC\nqVOn6NixI05OTmWOIyIiIiIiIjdn8wWwm5sbBoOB06dP4+3tbdl+9OhR6tWrx6RJk0o9dvHixfz+\n+++sXbsWJycnZs6cyZkzZyxxMzMzLW3T09NxdXUtc35hYWFs3LiR06dPl9qbeyPq6RURERERsW0a\nAm09Nr8IlpOTEz179mT27NlcvnwZgMOHD7N27Vr69u17w2PPnTtH48aNcXJy4uTJk2zfvp1Lly4B\nEBAQwNq1awE4e/YsPXv2JCsr66b5ODg4cP78ecvnsLAwkpKS+Oabbyy9yyIiIiIiImJ9Nl8AA7z5\n5pu4urrSs2dPwsLCmDJlCjExMTRp0uSGx/3v//4vKSkphISE8O677xIdHc3evXv5/PPP6devH3Xq\n1KFz58783//9H2PHji3Wwwwlf1PTuXNnli1bxiuvvAJA06ZNcXNzo1OnTjg6OlrvokVERERERKQY\ng7mkCbJyVw0ePJg+ffrw5JNPVnQqIjbBGj/WNNRI7rbCwsJyxzCZTFbIREREKptOnTpVdAql2rFj\nR0WnUCZ20QNcme3fv59Tp06p+BUREREREbnDbH4RrMrsjTfeIC0tjffee6+iUxEREREREbF5KoAr\n0NSpUys6BRERERERqeQ0Nct6VACLiIiIiIhIhVu1ahWffvopAN7e3owfP56GDRsyY8YMkpOTMRqN\ndOnShZEjR972OVQAi4iIiIiISIX69ddfee+991i/fj333nsv//rXv4iOjqZPnz6kpqayYcMGzGYz\nffv2ZdOmTXTr1u22zqMCWMTOTZkyxSpx3nzzTavEEalq8vPzrRLH1lZwLioqKncMo1FrdYqIgH38\nPPzll1/429/+xr333gvA448/zvvvv09CQgJPP/00Dg5XStennnqKhISE2y6Abf9OioiIiIiISKXW\nsmVLjh8/zk8//YTZbGbTpk106NCBo0eP0qBBA0u7Bg0a8Ouvv972edQDLCIiIiIiIhXK09OTESNG\n0LNnT5ydnalRowaxsbH0798fR0dHSzsnJydycnJu+zwqgEVEREREROS2RERElLh99erVZYrzww8/\nMH/+fDZv3oyXlxfr169nyJAh1KhRo9h0o5ycHGrWrHnb+drUEGhfX1+CgoIIDQ0lODiYwYMHc+LE\niQrJJTo6mvnz51fIuUVERERExHYYDIZK+7KWPXv20KZNG7y8vAAICQnh559/xs3NjWPHjlnaHTt2\njAceeOC2z2NTPcAGg4HY2Fg8PT0BiImJYcqUKSpERURERERE7oCy9vSWplGjRnzxxRdkZWVRu3Zt\ntm7dyr333svzzz/P/Pnz6dGjB0VFRSxbtoxRo0bd9nlsqgA2m82YzWbL58cff5wtW7aU2nbKlCkk\nJibSsGFD/P392b59O7GxsVy4cIHJkydz8OBBioqKGDJkiKVrf9++fUyfPp3c3FxcXFwYN24czZs3\nv2FeR44cYeLEiWRlZeHk5MSoUaPo2LEjAB9//DHLly/HwcEBf39/xo4da6W7ISIiIiIiUjV07tyZ\n77//nl69emE0GnF2dmbOnDm0bt2aw4cP07NnTwwGA927d8ff3/+2z2NTBfC18vPzWbduHQEBASXu\n37ZtGzt37iQ5OZm8vDx69+6Nh4cHANOmTcNkMpGYmEhmZiYRERG0aNGC++67jxEjRjBv3jxatWrF\npk2bGDVqFImJiaXmYTabGTVqFEOHDiU0NJTvvvuOAQMGsGXLFg4fPsyqVatYv349Dg4OREZGkpiY\nSFBQ0B25JyIiIiIiUvVYc6hxZTZs2DCGDRt23fZXX32VV1991SrnsLkCOCoqCqPRSEZGBp6engwZ\nMqTEdqmpqfj7++Pk5ISTkxNhYWHs27cPgK1bt/LJJ58A4ObmRteuXdm0aROtW7embt26tGrVCoBu\n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\n0YwcORJXV1f++c9/Wh5v5OjoSI8ePXj11Vfp3bv3dd/adOzYkTNnznDgwAG8vb05fvw4ixcvZs6c\nORXKRTO9IiIiIiIi5WMzBbBhGERGRl73HOD/nf0t69jStr29vRk6dChDhgzBbDbTrl07pk6dahkX\nFBTEqFGjeO+996471snJiUWLFhETE8OlS5dwcHBg9OjRVrhSERERERGpS9QCbT2GubzPBhIRAAoK\nCiodw97eZr57EhEREZFKevbZZ6s7hTItXbq0ulOoEJtaBVpERERERERsl6ahREREREREajC1QFuP\nZoBFRERERETEJqgAFhEREREREZugFmgREREREZEaTC3Q1qMZYBEREREREbEJmgEWqSA9wkhERERE\npHbSb/IiIiIiIiI1mFqgrUct0CIiIiIiImITbLoA9vPzY+/evTftfCkpKbz44os37XwiIiIiIiLy\nX2qBvon8/f3x9/ev7jRERERERKQWUQu09dj0DHBZ/Pz8WLFiBaGhofj4+JCcnMy0adN4+OGHGTx4\nMOfPnwfgX//6F3/+858JDg5mwIABpKamYjab8fHx4fvvv7fEe//99xk7dizr1q0jKioKgPPnzzNh\nwgQCAwN5+OGHiY+Pr5ZrFRERERERsRUqgMvw008/ER8fz7PPPsuECRMICQkhOTmZwsJCkpKSMJvN\njB07loiICBITE4mJiWHs2LHk5eUREBDAp59+aomVkpJCSEgI8N9vb2bOnImdnR1bt27lo48+YvHi\nxRw+fLharlVERERERMQWqAAuQ3Gr8l133YWzszNdunQBoE2bNpw+fZoTJ05w9uxZS2Hbvn17WrRo\nwbfffktAQADbtm0DICsri3/961/86U9/KhF/+/btREZGAuDm5sbDDz9MUlLSzbo8ERERERERm2Pz\n9wAXFRURHByMYRh4e3sza9YsABo0aACAyWSifv36lvF2dnYUFhaSlZWFi4tLiViNGjUiMzOToKAg\nTp8+TUZGBqmpqfTs2RNHR8cSY3NzcxkzZgx2dnaYzWYuX75MUFBQhfMPDQ0tdb9aqkVERERE6gbd\nA2w9Nl8Am0wmEhMTK3ycu7s7OTk5Jfbl5OTQtGlTTCYTvXv3Ztu2bezevZtBgwZdd7yHhwdvvPEG\nbdq0ueHcRUREREREpPxsvgC+US1btsTT05OEhARCQkLYu3cvmZmZeHt7AxAYGEhsbCw//PADixYt\nuu743r17s2rVKl566SUKCgp49dVX6d+/P+3atatQHprpFRERERERKR+bvge4rFaC8rYYzJ8/nxUr\nVhASEsKMGTNYuHAhzs7OAHTr1o2DBw/i4+ODg4PDdceOHj2a8+fPExQURL9+/SgqKuLuu+++8YsR\nEREREZE6yTCMGvuqbQyz2Wyu7iRERERERESkdKNHj67uFMq0cOHC6k6hQmx6BlhERERERERsh+4B\nFhERERERqcFqY6txTaUZYBEREREREbEJKoBFRERERETEJqgFWkREREREpAZTC7T1aAZYRERERERE\nbIJmgEVERKSEwsLCSsews7OzQiYiIiLWpQJYRERERESkBlMLtPWoBVpERERERERsggpgERERERER\nsQk2UwCnp6dz7733Xrd/3bp1REVF3bQ8Tp06Rb9+/W7a+UREREREpHYzDKPGvmobmymAoeze+Zv5\nB9esWTM2bdp0084nIiIiIiIiV9lUAVwRkyZNYsGCBURGRvLggw+yYMEC1qxZQ79+/ejduzffffcd\nAOfOnWPMmDEEBQXRt29fli9fDsCYMWN47733LPF++OEHHnroIY4fP15iJvr1118nKCgIPz8/ZsyY\ngdlsvqnXKSIiIiIiYitUAP+GXbt28fbbb/P++++zfPlysrOz2bRpEwEBAcTFxQEwb948XF1d2bJl\nCytXruTDDz9k7969BAYGsm3bNkus5ORkgoKCMJlMlhnn9evXs3XrVj7++GNSUlI4duwYH374YbVc\nq4iIiIiI1EzV3easFmgb0aNHD5ycnGjbti1FRUX07t0bgLvvvpvTp08DsHPnToYMGQKAq6srDz/8\nMKmpqfj6+vL999+Tm5sLXC2AQ0JCSsTfvn07AwcOpEGDBphMJsLCwkhKSqpQjqGhoaW+RERERERE\npCSbeQ6wyWQqtb24sLAQwzCIiooiIyMDwzBISEgAoEGDBiWOr1evnuXnwsJCALKysnB1dbWMc3Fx\n4cyZM9SrV48HH3yQ7du306lTJ86fP0+nTp1IT0+3jD1//jzvvvsuH330EWazmaKiIpo0aVIl1y8i\nIiIiImLrbKYAdnNzwzAMMjIy8PT0tOw/evQoLVq0YNq0aTcUt2nTpuTk5Fhi5uTk0LRpUwACAwNJ\nTk4mKyuLwMDA64718PDAz8+P8PDwGzo3QHx8/A0fKyIiIiIiNZ/JpMZda7GZT9LZ2Zn+/fuzcOFC\n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\n383NjZs3b+Lr63vXromIiIiIiEhxZ8q4da6wSBF38+bNAscoUaKEAS0REREREbHP5cuXC7sJebq1\nHtKDoFhMgRYRERERERFRAiwiIiIiIiLFghJgERERERERKRaUAIuIiIiIiEixoARYREREREREioUi\n+RgkkbwYUcE5NTW1wDGyHoElIiIiInInf330quSfRoBFRERERESkWFACLCIiIiIiIsWCEmARERER\nEREpForkQkRvb28effRRnJ2dAcjIyMBkMjFt2jSefPLJHMcvX76cHj165Ou92rRpw/Tp0/H19S1Q\nm0VEREREROTuKpIJsMlkYvHixXh5ed3x2HPnzrFw4cJ8J8AiIiIiIiLyYCiSU6AzMjLIyMiw69je\nvXtz9uxZrFYrU6dOZdKkSbZ9iYmJ+Pj4cPnyZZYsWYLVaiUoKIiePXty/Phx23H/+9//eP7552nV\nqhVTp061bd+wYQOdOnXCarUyYMAATp06xZ49e+jTp4/tmJdffpnRo0fbXnfu3JnDhw8X5OOLiIiI\niEgRYjKZ7ts/D5oimQA7YsqUKVSuXJnw8HCsVivbtm2z7du2bRvNmjXDZDIxe/ZsVq5cyYYNGxg0\naBDbt2+3Hffzzz+zbNkyVqxYwZIlS4iLi+PPP/9kwoQJzJs3j/DwcAICAggJCcHX15djx46RlpZG\neno6iYmJtmT60qVLnD9/nrp1697ryyAiIiIiIlLkFckp0AD9+/fPtga4XLlyLFmy5LbnNGjQgIyM\nDH755Rfq1KnDli1bCA4OxtXVFZPJxPLlywkODsZisWQ7r2PHjgB4eXlRvnx5YmNjOXbsGH5+flSr\nVg2AHj16MH36dEqUKIG3tzeHDh3C2dmZGjVqkJCQQHx8PIcPH+bpp5926HN269Yt1+1hYWEOxRER\nERERESnqimwCnNca4C+//JIlS5ZgMpkYOXIkZcqUyba/ffv2REZGUr16dWJiYpgxYwZms5lFixYx\nf/58Zs+ejbe3NyEhIdSqVQuA0qVL2843mUykpaVx4cKFbLFLly5NRkYGiYmJNG3alP3795ORkYGv\nry/nzp0jOjqaQ4cO0axZs7t0RURERERERIq3IpsA57UGuG/fvvTt29f2et++fdn2WywWJk+eTM2a\nNWnSpAmlSpUCMitLz5o1i9TUVBYsWEBISAhLly7N8/09PT05cOCA7XVycjJOTk54eHjQtGlTvvrq\nK1JTUxk6dChxcXF89913HDp0iO7duzv0OTXSKyIiIiIiYp9ivwbYbDZz5coV0tLSAPDx8SEhIYGw\nsDCCgoIAOHr0KMOHD+fmzZuYzWbq1at3xwXf/v7+REdHc/r0aQC+/vpr/P39cXJyomHDhhw5coRj\nx45Ru3ZtGjVqRHR0NOfPn+fRRx+9ux9YRERERESkmCqSI8AmkynHGmCTyZRj9BegTp06uLu706JF\nC1atWkXFihVp27YtK1euZObMmQDUrl2bqlWr0rFjR1xcXHj44YcJCQmxvddf3xugQoUKTJo0iVdf\nfZW0tDSqVq3KxIkTAXBxcaFChQqYzZmX383NjZs3b+pZwiIiIiIiksODWG35fmXKsPd5QSICQGpq\naoFjZHV+iIiIiIjcydWrVwu7CXl66KGHCrsJDin2U6BFRERERESkeFACLCIiIiIiIsWCEmARERER\nEREpFpQAi4iIiIiISLGgSjwiIiIiIiL3MVWBNo4SYBEHqYKziIiIiMiDSVOgRUREREREpFhQAiwi\nIiIiIiLFghJgERERERERKRaKTQLcpk0bYmJicmzftWsXsbGx+Yo5Z84cxo8fX9CmiYiIiIiIyD1Q\nbBLgvISGhnLmzJnCboaIiIiIiIjcZcU6AZ41axZ79+5l9OjRzJkzh6ZNm5Kenm7b/9prr7Fs2TKO\nHTtGr1696NSpExaLhS+//NJ2zPXr1xk1ahRt27alV69exMfHA/Dnn38yaNAgOnToQKdOnVizZg0A\ngYGBnDp1CoDw8HDq16/P9evXgcxkfPLkyffq44uIiIiIiBQrxToBHj58OF5eXsyYMYOhQ4dSvnx5\noqKiALh27Rrff/897du3Z86cOfTq1Ytvv/2WZcuWsWfPHm7evAnAnj17GD16NFu3buWRRx5h5cqV\nAIwfPx4/Pz82btzIp59+yqRJkzh79ix+fn7s378fgKioKOrXr8/Bgwdtr5s1a1YIV0JERERERKTo\n0wNNgYyMDADat29PZGQkTZo0YefOnTRo0AAPDw/KlSvH5s2bqV27Nk888QRz5syxnfvUU09RsWJF\nAOrWrUtsbCypqan83//9Hx9//DEAlStXxs/Pj71799KkSRMOHDhA586dOXDgAH369CEmJoann36a\nAwcOMHXqVIfa3q1bt1y3h4WF5edSiIiIiIjIfcZkMhV2E4qMYjUCnJ6eTlBQEFarlX/+85859lss\n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\nMSIGQNOmTW2dC1arNdd/TO40neuDDz7ItcDU8OHDmTVr1m3f/1YpKSn873//IyEhAU9PTxo0aJCv\n3vOCxvnpp58YNWoUSUlJlC5dmqSkJCpVqsTHH39syM+zo65cuUJUVBSXLl3Cy8uLhg0b4urqes/j\njBkzBmdnZ/r378+IESOYO3cuX331FZcuXeLDDz+0O87q1avZvn27rR1t27alXbt2Dn0Wi8XCpk2b\nuHr1Kv7+/mzfvp0yZco4NKXbiBiQudY7JCQEX19funXrRr9+/WjQoAFvvvmm3R1zFouFZcuW8cgj\njxAYGMicOXOoWbMmzz33nENt+fTTT9m0aRNdunRh8eLFREREMH/+fH777Te7i0kZESMpKYkJEyYQ\nGRmJu7s7u3fvZvLkyQQHB+faSZaXn376iSFDhlC2bFkuXLjAd999x6hRo2jevDnPPfecXTH27duX\n5z5H1u4aEWfZsmVERUXRsWPHHDf+9iZ7tyvm58h6TCOWaBgRAzKnhkdHRxeoeGGHDh1ynXaa1/a8\nNG/enClTphRo2rERMQBeeukljh8/zqOPPppj/e5//vMfu2J06NCB2rVrF3g9cnp6OkeOHOGHH34g\nOjqaY8eOUbVqVRYsWGB3DCPihIeH29YAu7i44OPjg6+vLz4+Pvkq5nnp0iV27tzJokWLOHjwoF0d\nFIsWLWL9+vVMnz492yydX375hTFjxtCzZ0/69u3rcFukaNMIcDGSlJTEoEGDClw104g4n332GR07\ndmTcuHG5/gP02GOP0blz59vGGDZsGBEREezatSvP6pt3SjgBdu7cmeMf9bS0NJ599llbwY87xTEi\nBmSud80arbnVrZVt80p+syqBfvvtt7aRwSzJycm2abL22LVrF6NGjaJKlSq2qcsJCQnMmjWLxo0b\n39M49evXZ9OmTZw4ccI2cvvYY4/Z3YYsiYmJzJw5k927d5OQkEC5cuVo3bo1I0aMuGOvd1bnxV/X\nRcXFxdnW8toz9dioOJC5rvODDz5g0KBBXLx4kcGDB9O2bVsmTJhg1/lZunbtavfoRV6yRqB37dpF\n/fr1bVOWHXkEhRExIPNRV76+vpw9e5azZ8/y7LPP2rbbq0SJEjzyyCMcOnQIFxeX266Xv51vvvmG\n9evXU7JkSb7++msg87vJnlENI2OMGjWKpk2bMnHiRNv08E6dOjFp0iS++eYbu+OMHTuWWbNm4ePj\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f8d1d310710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cm = plot_cm(y_test, y_pred, labels=sorted_labels + [\"O\"], axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dev evaluation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Done\n"
     ]
    }
   ],
   "source": [
    "print_sequences(dev_sequences, y_pred, \"dev_wv.crf.bieou.tsv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "processed 23050 tokens with 937 phrases; found: 748 phrases; correct: 343.\r\n",
      "accuracy:  94.34%; precision:  45.86%; recall:  36.61%; FB1:  40.71\r\n",
      "          company: precision:  46.94%; recall:  31.94%; FB1:  38.02  49\r\n",
      "         facility: precision:  10.81%; recall:   8.70%; FB1:   9.64  37\r\n",
      "          geo-loc: precision:  45.45%; recall:  58.64%; FB1:  51.21  209\r\n",
      "            movie: precision:   0.00%; recall:   0.00%; FB1:   0.00  8\r\n",
      "      musicartist: precision:  28.57%; recall:   3.51%; FB1:   6.25  7\r\n",
      "            other: precision:  26.45%; recall:  17.88%; FB1:  21.33  121\r\n",
      "           person: precision:  61.39%; recall:  65.16%; FB1:  63.22  259\r\n",
      "          product: precision:  24.14%; recall:  15.22%; FB1:  18.67  29\r\n",
      "       sportsteam: precision:  77.78%; recall:  20.00%; FB1:  31.82  27\r\n",
      "           tvshow: precision:   0.00%; recall:   0.00%; FB1:   0.00  2\r\n"
     ]
    }
   ],
   "source": [
    "## FINAL MODEL\n",
    "! cat dev_wv.crf.bieou.tsv | tr '\\t' ' ' | perl -ne '{chomp;s/\\r//g;print $_,\"\\n\";}' | python data/conlleval.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Done\n"
     ]
    }
   ],
   "source": [
    "print_sequences(dev_sequences, y_pred, \"dev_wv.crf.bieou.notypes.tsv\", notypes=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "processed 23050 tokens with 937 phrases; found: 738 phrases; correct: 461.\r\n",
      "accuracy:  95.29%; precision:  62.47%; recall:  49.20%; FB1:  55.04\r\n",
      "                 : precision:  62.47%; recall:  49.20%; FB1:  55.04  738\r\n"
     ]
    }
   ],
   "source": [
    "## FINAL MODEL\n",
    "! cat dev_wv.crf.bieou.notypes.tsv | tr '\\t' ' ' | perl -ne '{chomp;s/\\r//g;print $_,\"\\n\";}' | python data/conlleval.py"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Final Test data evaluation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dev accuracy:  0.247369351833\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "      <th>f1-score</th>\n",
       "      <th>support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B-company</td>\n",
       "      <td>0.600</td>\n",
       "      <td>0.033</td>\n",
       "      <td>0.062</td>\n",
       "      <td>184</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>E-company</td>\n",
       "      <td>0.600</td>\n",
       "      <td>0.034</td>\n",
       "      <td>0.065</td>\n",
       "      <td>176</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>I-company</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.068</td>\n",
       "      <td>0.128</td>\n",
       "      <td>88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>U-company</td>\n",
       "      <td>0.625</td>\n",
       "      <td>0.194</td>\n",
       "      <td>0.296</td>\n",
       "      <td>438</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>B-facility</td>\n",
       "      <td>0.533</td>\n",
       "      <td>0.182</td>\n",
       "      <td>0.271</td>\n",
       "      <td>220</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>E-facility</td>\n",
       "      <td>0.524</td>\n",
       "      <td>0.196</td>\n",
       "      <td>0.286</td>\n",
       "      <td>219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>I-facility</td>\n",
       "      <td>0.680</td>\n",
       "      <td>0.116</td>\n",
       "      <td>0.198</td>\n",
       "      <td>147</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>U-facility</td>\n",
       "      <td>0.333</td>\n",
       "      <td>0.061</td>\n",
       "      <td>0.103</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>B-geo-loc</td>\n",
       "      <td>0.687</td>\n",
       "      <td>0.538</td>\n",
       "      <td>0.603</td>\n",
       "      <td>212</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>E-geo-loc</td>\n",
       "      <td>0.696</td>\n",
       "      <td>0.573</td>\n",
       "      <td>0.629</td>\n",
       "      <td>192</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>I-geo-loc</td>\n",
       "      <td>0.667</td>\n",
       "      <td>0.080</td>\n",
       "      <td>0.143</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>U-geo-loc</td>\n",
       "      <td>0.661</td>\n",
       "      <td>0.525</td>\n",
       "      <td>0.585</td>\n",
       "      <td>672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>B-movie</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>E-movie</td>\n",
       "      <td>0.143</td>\n",
       "      <td>0.043</td>\n",
       "      <td>0.067</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>I-movie</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.040</td>\n",
       "      <td>0.077</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>U-movie</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>B-musicartist</td>\n",
       "      <td>0.143</td>\n",
       "      <td>0.010</td>\n",
       "      <td>0.019</td>\n",
       "      <td>96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>E-musicartist</td>\n",
       "      <td>0.143</td>\n",
       "      <td>0.011</td>\n",
       "      <td>0.020</td>\n",
       "      <td>92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>I-musicartist</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>U-musicartist</td>\n",
       "      <td>0.333</td>\n",
       "      <td>0.010</td>\n",
       "      <td>0.020</td>\n",
       "      <td>96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>B-other</td>\n",
       "      <td>0.179</td>\n",
       "      <td>0.060</td>\n",
       "      <td>0.090</td>\n",
       "      <td>281</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>E-other</td>\n",
       "      <td>0.198</td>\n",
       "      <td>0.065</td>\n",
       "      <td>0.098</td>\n",
       "      <td>262</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>I-other</td>\n",
       "      <td>0.082</td>\n",
       "      <td>0.014</td>\n",
       "      <td>0.024</td>\n",
       "      <td>287</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>U-other</td>\n",
       "      <td>0.487</td>\n",
       "      <td>0.119</td>\n",
       "      <td>0.192</td>\n",
       "      <td>310</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>B-person</td>\n",
       "      <td>0.562</td>\n",
       "      <td>0.496</td>\n",
       "      <td>0.527</td>\n",
       "      <td>246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>E-person</td>\n",
       "      <td>0.543</td>\n",
       "      <td>0.498</td>\n",
       "      <td>0.520</td>\n",
       "      <td>239</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>I-person</td>\n",
       "      <td>0.714</td>\n",
       "      <td>0.089</td>\n",
       "      <td>0.159</td>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>U-person</td>\n",
       "      <td>0.250</td>\n",
       "      <td>0.195</td>\n",
       "      <td>0.219</td>\n",
       "      <td>241</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>B-product</td>\n",
       "      <td>0.386</td>\n",
       "      <td>0.104</td>\n",
       "      <td>0.163</td>\n",
       "      <td>164</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>E-product</td>\n",
       "      <td>0.028</td>\n",
       "      <td>0.006</td>\n",
       "      <td>0.010</td>\n",
       "      <td>160</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>I-product</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>340</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>U-product</td>\n",
       "      <td>0.308</td>\n",
       "      <td>0.098</td>\n",
       "      <td>0.148</td>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>B-sportsteam</td>\n",
       "      <td>0.235</td>\n",
       "      <td>0.100</td>\n",
       "      <td>0.140</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>E-sportsteam</td>\n",
       "      <td>0.333</td>\n",
       "      <td>0.154</td>\n",
       "      <td>0.211</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>I-sportsteam</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>U-sportsteam</td>\n",
       "      <td>0.273</td>\n",
       "      <td>0.056</td>\n",
       "      <td>0.093</td>\n",
       "      <td>107</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>B-tvshow</td>\n",
       "      <td>0.200</td>\n",
       "      <td>0.059</td>\n",
       "      <td>0.091</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>E-tvshow</td>\n",
       "      <td>0.125</td>\n",
       "      <td>0.059</td>\n",
       "      <td>0.080</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>I-tvshow</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>U-tvshow</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>avg/total</td>\n",
       "      <td>0.427</td>\n",
       "      <td>0.202</td>\n",
       "      <td>0.247</td>\n",
       "      <td>5955</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            class precision recall f1-score support\n",
       "0       B-company     0.600  0.033    0.062     184\n",
       "1       E-company     0.600  0.034    0.065     176\n",
       "2       I-company     1.000  0.068    0.128      88\n",
       "3       U-company     0.625  0.194    0.296     438\n",
       "4      B-facility     0.533  0.182    0.271     220\n",
       "5      E-facility     0.524  0.196    0.286     219\n",
       "6      I-facility     0.680  0.116    0.198     147\n",
       "7      U-facility     0.333  0.061    0.103      33\n",
       "8       B-geo-loc     0.687  0.538    0.603     212\n",
       "9       E-geo-loc     0.696  0.573    0.629     192\n",
       "10      I-geo-loc     0.667  0.080    0.143      25\n",
       "11      U-geo-loc     0.661  0.525    0.585     672\n",
       "12        B-movie     0.000  0.000    0.000      23\n",
       "13        E-movie     0.143  0.043    0.067      23\n",
       "14        I-movie     1.000  0.040    0.077      25\n",
       "15        U-movie     0.000  0.000    0.000      11\n",
       "16  B-musicartist     0.143  0.010    0.019      96\n",
       "17  E-musicartist     0.143  0.011    0.020      92\n",
       "18  I-musicartist     0.000  0.000    0.000      47\n",
       "19  U-musicartist     0.333  0.010    0.020      96\n",
       "20        B-other     0.179  0.060    0.090     281\n",
       "21        E-other     0.198  0.065    0.098     262\n",
       "22        I-other     0.082  0.014    0.024     287\n",
       "23        U-other     0.487  0.119    0.192     310\n",
       "24       B-person     0.562  0.496    0.527     246\n",
       "25       E-person     0.543  0.498    0.520     239\n",
       "26       I-person     0.714  0.089    0.159      56\n",
       "27       U-person     0.250  0.195    0.219     241\n",
       "28      B-product     0.386  0.104    0.163     164\n",
       "29      E-product     0.028  0.006    0.010     160\n",
       "30      I-product     0.000  0.000    0.000     340\n",
       "31      U-product     0.308  0.098    0.148      82\n",
       "32   B-sportsteam     0.235  0.100    0.140      40\n",
       "33   E-sportsteam     0.333  0.154    0.211      39\n",
       "34   I-sportsteam     0.000  0.000    0.000       9\n",
       "35   U-sportsteam     0.273  0.056    0.093     107\n",
       "36       B-tvshow     0.200  0.059    0.091      17\n",
       "37       E-tvshow     0.125  0.059    0.080      17\n",
       "38       I-tvshow     0.000  0.000    0.000      23\n",
       "39       U-tvshow     0.000  0.000    0.000      16\n",
       "40      avg/total     0.427  0.202    0.247    5955"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_pred = crf.predict(X_test_final)\n",
    "print \"Dev accuracy: \", metrics.flat_f1_score(y_test_final, y_pred, \n",
    "                      average='weighted', labels=labels)\n",
    "\n",
    "report = metrics.flat_classification_report(\n",
    "    y_test_final, y_pred, labels=sorted_labels, digits=3\n",
    ")\n",
    "display(classification_report_to_df(report))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Done\n"
     ]
    }
   ],
   "source": [
    "print_sequences(test_sequences, y_pred, \"test_wv.crf.bieou.tsv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "processed 61908 tokens with 3489 phrases; found: 1661 phrases; correct: 839.\r\n",
      "accuracy:  91.84%; precision:  50.51%; recall:  24.05%; FB1:  32.58\r\n",
      "          company: precision:  63.01%; recall:  14.79%; FB1:  23.96  146\r\n",
      "         facility: precision:  43.33%; recall:  15.42%; FB1:  22.74  90\r\n",
      "          geo-loc: precision:  66.38%; recall:  52.71%; FB1:  58.76  702\r\n",
      "            movie: precision:   0.00%; recall:   0.00%; FB1:   0.00  9\r\n",
      "      musicartist: precision:  20.00%; recall:   1.04%; FB1:   1.98  10\r\n",
      "            other: precision:  29.14%; recall:   8.63%; FB1:  13.32  175\r\n",
      "           person: precision:  40.44%; recall:  33.88%; FB1:  36.87  408\r\n",
      "          product: precision:  18.31%; recall:   5.28%; FB1:   8.20  71\r\n",
      "       sportsteam: precision:  24.39%; recall:   6.80%; FB1:  10.64  41\r\n",
      "           tvshow: precision:  11.11%; recall:   3.03%; FB1:   4.76  9\r\n"
     ]
    }
   ],
   "source": [
    "## FINAL MODEL\n",
    "! cat test_wv.crf.bieou.tsv | tr '\\t' ' ' | perl -ne '{chomp;s/\\r//g;print $_,\"\\n\";}' | python data/conlleval.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Done\n"
     ]
    }
   ],
   "source": [
    "print_sequences(test_sequences, y_pred, \"test_wv.crf.bieou.notypes.tsv\", notypes=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "processed 61908 tokens with 3489 phrases; found: 1643 phrases; correct: 1078.\r\n",
      "accuracy:  92.77%; precision:  65.61%; recall:  30.90%; FB1:  42.01\r\n",
      "                 : precision:  65.61%; recall:  30.90%; FB1:  42.01  1643\r\n"
     ]
    }
   ],
   "source": [
    "## FINAL MODEL\n",
    "! cat test_wv.crf.bieou.notypes.tsv | tr '\\t' ' ' | perl -ne '{chomp;s/\\r//g;print $_,\"\\n\";}' | python data/conlleval.py"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Run this cell to get the no-types evaluation of the submitted solution\n",
    "\n",
    "\n",
    "```\n",
    "%%bash\n",
    "sed -s 's/\\([BI]\\)\\-[a-z\\-]\\+/\\1/g' dev.crf.bieou.tsv | tr '\\t' ' ' | perl -ne '{chomp;s/\\r//g;print $_,\"\\n\";}' | python data/conlleval.py\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Final Run\n",
    "\n",
    "Paper submission models are stored in `WNUT_NER_2016_IM_models.txt`\n",
    "\n",
    "\n",
    "### SGD + dictionary + word_vec + brown_clusters + clark_clusters + wv_clusters + regex\n",
    "\n",
    "\n",
    "```\n",
    "\n",
    "X_train = [sent2features(s, vocab=None,\n",
    "                         dict_features=dict_features, vocab_presence_only=False,\n",
    "                         window=2, interactions=True, dict_interactions=False,\n",
    "                         lowercase=True, dropout=0, word2vec_model=model_glove,\n",
    "                        cluster_vocabs=[\n",
    "            cluster_vocab,\n",
    "            cluster_vocab_clark,\n",
    "            cluster_vocab_wv\n",
    "        ],\n",
    "              extra_features=get_global_sequence_features(\n",
    "            s, #cluster_vocabs=cluster_vocab, word2vec_model=model_glove,\n",
    "        #predictions=p\n",
    "        ))\n",
    "           for s, p in zip(train_sequences, predictions_train)]\n",
    "\n",
    "\n",
    "processed 23050 tokens with 937 phrases; found: 749 phrases; correct: 354.\n",
    "accuracy:  94.60%; precision:  47.26%; recall:  37.78%; FB1:  41.99\n",
    "          company: precision:  38.00%; recall:  26.39%; FB1:  31.15  50\n",
    "         facility: precision:  20.00%; recall:   8.70%; FB1:  12.12  20\n",
    "          geo-loc: precision:  44.21%; recall:  66.05%; FB1:  52.97  242\n",
    "            movie: precision:  37.50%; recall:  16.67%; FB1:  23.08  8\n",
    "      musicartist: precision:   0.00%; recall:   0.00%; FB1:   0.00  3\n",
    "            other: precision:  27.64%; recall:  18.99%; FB1:  22.52  123\n",
    "           person: precision:  65.59%; recall:  66.39%; FB1:  65.99  247\n",
    "          product: precision:  25.00%; recall:  15.22%; FB1:  18.92  28\n",
    "       sportsteam: precision:  73.91%; recall:  16.19%; FB1:  26.56  23\n",
    "           tvshow: precision:  20.00%; recall:  12.50%; FB1:  15.38  5\n",
    "           \n",
    "           \n",
    "processed 23050 tokens with 937 phrases; found: 741 phrases; correct: 476.\n",
    "accuracy:  95.71%; precision:  64.24%; recall:  50.80%; FB1:  56.73\n",
    "                 : precision:  64.24%; recall:  50.80%; FB1:  56.73  741           \n",
    "```\n",
    "\n",
    "\n",
    "## Best performance\n",
    "\n",
    "### SGD: Brown clusters + Word embeddings (Glove + conditied to text) + Regex + Dict features\n",
    "```\n",
    "processed 23050 tokens with 937 phrases; found: 790 phrases; correct: 374.\n",
    "accuracy:  94.58%; precision:  47.34%; recall:  39.91%; FB1:  43.31\n",
    "          company: precision:  41.07%; recall:  31.94%; FB1:  35.94  56\n",
    "         facility: precision:  27.50%; recall:  23.91%; FB1:  25.58  40\n",
    "          geo-loc: precision:  46.90%; recall:  65.43%; FB1:  54.64  226\n",
    "            movie: precision:   0.00%; recall:   0.00%; FB1:   0.00  8\n",
    "      musicartist: precision:  10.00%; recall:   3.51%; FB1:   5.19  20\n",
    "            other: precision:  53.16%; recall:  23.46%; FB1:  32.56  79\n",
    "           person: precision:  56.34%; recall:  65.57%; FB1:  60.61  284\n",
    "          product: precision:  20.00%; recall:  17.39%; FB1:  18.60  40\n",
    "       sportsteam: precision:  84.00%; recall:  20.00%; FB1:  32.31  25\n",
    "           tvshow: precision:   8.33%; recall:  12.50%; FB1:  10.00  12\n",
    "\n",
    "```\n",
    "\n",
    "### SGD: Brown clusters (+ conditioned on tweets) + Clark clusters (only on tweets) + Word embeddings (Glove + conditied to text) + Regex + Dict features\n",
    "```\n",
    "processed 23050 tokens with 937 phrases; found: 798 phrases; correct: 366.\n",
    "accuracy:  94.25%; precision:  45.86%; recall:  39.06%; FB1:  42.19\n",
    "          company: precision:  35.59%; recall:  29.17%; FB1:  32.06  59\n",
    "         facility: precision:  26.32%; recall:  21.74%; FB1:  23.81  38\n",
    "          geo-loc: precision:  50.74%; recall:  63.58%; FB1:  56.44  203\n",
    "            movie: precision:   0.00%; recall:   0.00%; FB1:   0.00  5\n",
    "      musicartist: precision:   0.00%; recall:   0.00%; FB1:   0.00  8\n",
    "            other: precision:  34.90%; recall:  29.05%; FB1:  31.71  149\n",
    "           person: precision:  58.62%; recall:  62.70%; FB1:  60.59  261\n",
    "          product: precision:  16.67%; recall:  15.22%; FB1:  15.91  42\n",
    "       sportsteam: precision:  64.29%; recall:  17.14%; FB1:  27.07  28\n",
    "           tvshow: precision:  40.00%; recall:  25.00%; FB1:  30.77  5\n",
    "```\n",
    "\n",
    "### SGD: Brown clusters (+ conditioned on tweets) + Word embeddings (Glove + conditied to text) + Regex + Dict features\n",
    "```\n",
    "processed 23050 tokens with 937 phrases; found: 807 phrases; correct: 367.\n",
    "accuracy:  94.15%; precision:  45.48%; recall:  39.17%; FB1:  42.09\n",
    "          company: precision:  38.18%; recall:  29.17%; FB1:  33.07  55\n",
    "         facility: precision:  23.53%; recall:  17.39%; FB1:  20.00  34\n",
    "          geo-loc: precision:  51.76%; recall:  63.58%; FB1:  57.06  199\n",
    "            movie: precision:   0.00%; recall:   0.00%; FB1:   0.00  7\n",
    "      musicartist: precision:   0.00%; recall:   0.00%; FB1:   0.00  8\n",
    "            other: precision:  32.34%; recall:  30.17%; FB1:  31.21  167\n",
    "           person: precision:  59.30%; recall:  62.70%; FB1:  60.96  258\n",
    "          product: precision:  15.56%; recall:  15.22%; FB1:  15.38  45\n",
    "       sportsteam: precision:  65.52%; recall:  18.10%; FB1:  28.36  29\n",
    "           tvshow: precision:  40.00%; recall:  25.00%; FB1:  30.77  5\n",
    "```\n",
    "\n",
    "\n",
    "\n",
    "### SGD: Brown clusters + context words + Word embeddings (Glove + conditied to text) + Regex + Dict features\n",
    "\n",
    "```\n",
    "processed 23050 tokens with 937 phrases; found: 763 phrases; correct: 367.\n",
    "accuracy:  94.53%; precision:  48.10%; recall:  39.17%; FB1:  43.18\n",
    "          company: precision:  47.83%; recall:  30.56%; FB1:  37.29  46\n",
    "         facility: precision:  30.00%; recall:  26.09%; FB1:  27.91  40\n",
    "          geo-loc: precision:  48.17%; recall:  64.81%; FB1:  55.26  218\n",
    "            movie: precision:   0.00%; recall:   0.00%; FB1:   0.00  5\n",
    "      musicartist: precision:   0.00%; recall:   0.00%; FB1:   0.00  10\n",
    "            other: precision:  39.64%; recall:  24.58%; FB1:  30.34  111\n",
    "           person: precision:  60.70%; recall:  63.93%; FB1:  62.28  257\n",
    "          product: precision:  25.00%; recall:  17.39%; FB1:  20.51  32\n",
    "       sportsteam: precision:  60.00%; recall:  17.14%; FB1:  26.67  30\n",
    "           tvshow: precision:  14.29%; recall:  25.00%; FB1:  18.18  14\n",
    "```\n",
    "\n",
    "### second best\n",
    "\n",
    "```\n",
    "processed 23050 tokens with 937 phrases; found: 845 phrases; correct: 337.\n",
    "accuracy:  92.64%; precision:  39.88%; recall:  35.97%; FB1:  37.82\n",
    "          company: precision:  48.89%; recall:  30.56%; FB1:  37.61  45\n",
    "         facility: precision:  17.50%; recall:  15.22%; FB1:  16.28  40\n",
    "          geo-loc: precision:  50.52%; recall:  60.49%; FB1:  55.06  194\n",
    "            movie: precision:   0.00%; recall:   0.00%; FB1:   0.00  9\n",
    "      musicartist: precision:   0.00%; recall:   0.00%; FB1:   0.00  13\n",
    "            other: precision:  15.10%; recall:  20.67%; FB1:  17.45  245\n",
    "           person: precision:  65.47%; recall:  59.84%; FB1:  62.53  223\n",
    "          product: precision:  22.22%; recall:  17.39%; FB1:  19.51  36\n",
    "       sportsteam: precision:  65.52%; recall:  18.10%; FB1:  28.36  29\n",
    "           tvshow: precision:   0.00%; recall:   0.00%; FB1:   0.00  11\n",
    "```\n",
    "\n",
    "### LBFGS - only brown clusters + wordvec + regex + dict\n",
    "\n",
    "```\n",
    "processed 23050 tokens with 937 phrases; found: 972 phrases; correct: 348.\n",
    "accuracy:  93.26%; precision:  35.80%; recall:  37.14%; FB1:  36.46\n",
    "          company: precision:  28.95%; recall:  30.56%; FB1:  29.73  76\n",
    "         facility: precision:  19.64%; recall:  23.91%; FB1:  21.57  56\n",
    "          geo-loc: precision:  40.48%; recall:  62.96%; FB1:  49.28  252\n",
    "            movie: precision:   0.00%; recall:   0.00%; FB1:   0.00  12\n",
    "      musicartist: precision:   0.00%; recall:   0.00%; FB1:   0.00  21\n",
    "            other: precision:  25.00%; recall:  25.14%; FB1:  25.07  180\n",
    "           person: precision:  54.55%; recall:  56.56%; FB1:  55.53  253\n",
    "          product: precision:  11.11%; recall:  15.22%; FB1:  12.84  63\n",
    "       sportsteam: precision:  43.48%; recall:  19.05%; FB1:  26.49  46\n",
    "           tvshow: precision:  23.08%; recall:  37.50%; FB1:  28.57  13\n",
    "```\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
